[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/CGObjCMac_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCMac_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCMac_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCMac_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,688 @@
+<!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: CGObjCMac.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_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li><li class="navelem"><a class="el" href="dir_e8103833ce80ba077e945e011f96d4ad.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CGObjCMac.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CGObjCMac_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/CodeGen/Release+Asserts/CGObjCMac.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/Release+Asserts/CGObjCMac.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CGObjCMac.cpp CGObjCRuntime.h CGBuilder.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/include/llvm/IR/IRBuilder.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/IR/BasicBlock.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/IR/User.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/IR/Use.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/DebugLoc.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/IR/SymbolTableListTraits.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/IR/DataLayout.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/IR/DerivedTypes.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/IR/Type.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/PassSupport.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/InitializePasses.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/PassRegistry.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/Support/Atomic.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/Support/Valgrind.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/PassAnalysisSupport.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/IR/Instructions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/IR/Attributes.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a>.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/IR/InstrTypes.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/include/llvm/IR/OperandTraits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/IR/LLVMContext.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/IR/Operator.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/IR/Constants.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/IR/Constant.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/Support/GetElementPtrTypeIterator.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/Support/ConstantFolder.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/Support/ValueHandle.h CGCall.h \
+ CGValue.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h EHScopeStack.h \
+ ABIInfo.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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 \
+ CGBlocks.h CodeGenFunction.h CGDebugInfo.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Frontend/CodeGenOptions.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Frontend/CodeGenOptions.def \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/include/llvm/DIBuilder.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/include/llvm/DebugInfo.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/IR/Metadata.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/include/llvm/Support/Dwarf.h CodeGenModule.h \
+ CGVTables.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BaseSubobject.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/GlobalDecl.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ABI.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/VTableBuilder.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CXXInheritance.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeOrdering.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RecordLayout.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/include/llvm/IR/GlobalVariable.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/include/llvm/IR/GlobalValue.h CodeGenTypes.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/CodeGen/CGFunctionInfo.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/include/llvm/IR/Module.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/include/llvm/IR/Function.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/include/llvm/IR/Argument.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/include/llvm/IR/GlobalAlias.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Mangle.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>  /home/tstellar/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>  /home/tstellar/llvm/include/llvm/Support/Debug.h CGCleanup.h \
+ CGRecordLayout.h \</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>  /home/tstellar/llvm/include/llvm/IR/InlineAsm.h \</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>  /home/tstellar/llvm/include/llvm/IR/IntrinsicInst.h \</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>  /home/tstellar/llvm/include/llvm/IR/Intrinsics.h \</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>  /home/tstellar/llvm/include/llvm/IR/Intrinsics.gen \</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>  /home/tstellar/llvm/include/llvm/Support/CallSite.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> CGObjCRuntime.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> CGBuilder.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/IR/IRBuilder.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/ArrayRef.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/None.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/SmallVector.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/Support/AlignOf.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/Compiler.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/Config/llvm-config.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/Support/MathExtras.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/SwapByteOrder.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/DataTypes.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/Support/type_traits.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/StringRef.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/ADT/Twine.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/IR/BasicBlock.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/ADT/ilist.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/IR/Instruction.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/IR/User.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/include/llvm/IR/Use.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/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/Support/CBindingWrapping.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/Support/Casting.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-c/Core.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/include/llvm/Support/DebugLoc.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/include/llvm/IR/Instruction.def:</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/include/llvm/IR/SymbolTableListTraits.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/IR/DataLayout.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/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/include/llvm/IR/DerivedTypes.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/include/llvm/IR/Type.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/APFloat.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/APInt.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/Pass.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/include/llvm/PassSupport.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/include/llvm/Pass.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/InitializePasses.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/include/llvm/PassRegistry.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/include/llvm/Support/Atomic.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/include/llvm/Support/Valgrind.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/include/llvm/PassAnalysisSupport.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/include/llvm/IR/Instructions.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/IR/Attributes.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/include/llvm/ADT/FoldingSet.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/include/llvm/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</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/include/llvm/IR/InstrTypes.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/IR/OperandTraits.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/IR/LLVMContext.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/IR/Operator.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/include/llvm/IR/Constants.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/include/llvm/IR/Constant.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/GetElementPtrTypeIterator.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/Support/ConstantFolder.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/ValueHandle.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> CGCall.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> CGValue.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/CodeGen/../../include/clang/AST/ASTContext.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/CodeGen/../../include/clang/AST/ASTTypeTraits.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/CodeGen/../../include/clang/AST/ASTFwd.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/CodeGen/../../include/clang/AST/DeclNodes.inc:</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/CodeGen/../../include/clang/AST/StmtNodes.inc:</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/CodeGen/../../include/clang/AST/TypeNodes.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/CodeGen/../../include/clang/AST/Decl.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/CodeGen/../../include/clang/AST/APValue.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/CodeGen/../../include/clang/Basic/LLVM.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/include/llvm/ADT/APSInt.h:</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/include/llvm/ADT/PointerUnion.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/CodeGen/../../include/clang/AST/DeclBase.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/CodeGen/../../include/clang/AST/AttrIterator.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/CodeGen/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/IdentifierTable.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/CodeGen/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.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/CodeGen/../../include/clang/Basic/TokenKinds.h:</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/CodeGen/../../include/clang/Basic/TokenKinds.def:</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/include/llvm/ADT/SmallString.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/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticIDs.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/ADT/IntrusiveRefCntPtr.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/CodeGen/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.def:</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/CodeGen/../../include/clang/Basic/SourceLocation.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/include/llvm/ADT/STLExtras.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/CodeGen/../../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="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/CodeGen/../../include/clang/Basic/Specifiers.h:</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/Support/PrettyStackTrace.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/CodeGen/../../include/clang/AST/ExternalASTSource.h:</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/CodeGen/../../include/clang/AST/CharUnits.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/CodeGen/../../include/clang/AST/Redeclarable.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/CodeGen/../../include/clang/AST/Type.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/CodeGen/../../include/clang/AST/NestedNameSpecifier.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/CodeGen/../../include/clang/AST/TemplateName.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/CodeGen/../../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="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/CodeGen/../../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="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> /home/tstellar/llvm/include/llvm/ADT/Optional.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/CodeGen/../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> /home/tstellar/llvm/include/llvm/Support/system_error.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/CodeGen/../../include/clang/AST/Stmt.h:</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/CodeGen/../../include/clang/AST/DeclGroup.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/CodeGen/../../include/clang/AST/StmtIterator.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/CodeGen/../../include/clang/Basic/CapturedStmt.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/tools/clang/lib/CodeGen/../../include/clang/AST/TemplateBase.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/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLoc.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/CodeGen/../../include/clang/AST/TypeLocNodes.def:</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/CodeGen/../../include/clang/AST/CanonicalType.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/CodeGen/../../include/clang/AST/CommentCommandTraits.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/CodeGen/../../include/clang/Basic/CommentOptions.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/CodeGen/../../include/clang/AST/CommentCommandList.inc:</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/CodeGen/../../include/clang/AST/PrettyPrinter.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/CodeGen/../../include/clang/Basic/LangOptions.h:</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/CodeGen/../../include/clang/Basic/ObjCRuntime.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/CodeGen/../../include/clang/Basic/VersionTuple.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/include/llvm/ADT/Triple.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/CodeGen/../../include/clang/Basic/Sanitizers.def:</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/CodeGen/../../include/clang/Basic/LangOptions.def:</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/CodeGen/../../include/clang/Basic/OpenCLExtensions.def:</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/CodeGen/../../include/clang/AST/RawCommentList.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/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceManager.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/CodeGen/../../include/clang/Basic/FileManager.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/CodeGen/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/tools/clang/lib/CodeGen/../../include/clang/Basic/AddressSpaces.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/ADT/SmallPtrSet.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/ADT/TinyPtrVector.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> EHScopeStack.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> ABIInfo.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/CodeGen/../../include/clang/AST/DeclObjC.h:</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/CodeGen/../../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="l00479"></a><span class="lineno">  479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> CGBlocks.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> CodeGenFunction.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> CGDebugInfo.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/CodeGen/../../include/clang/AST/Expr.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/CodeGen/../../include/clang/AST/ASTVector.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/CodeGen/../../include/clang/AST/DeclAccessPair.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/CodeGen/../../include/clang/AST/OperationKinds.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/CodeGen/../../include/clang/Basic/CharInfo.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/CodeGen/../../include/clang/Basic/TypeTraits.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/CodeGen/../../include/clang/Basic/Builtins.def:</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/CodeGen/../../include/clang/Frontend/CodeGenOptions.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/CodeGen/../../include/clang/Frontend/CodeGenOptions.def:</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/include/llvm/DIBuilder.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/include/llvm/DebugInfo.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/include/llvm/IR/Metadata.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/include/llvm/Support/Dwarf.h:</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> CodeGenModule.h:</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> CGVTables.h:</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BaseSubobject.h:</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/GlobalDecl.h:</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTUnresolvedSet.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Lambda.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ABI.h:</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/VTableBuilder.h:</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CXXInheritance.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeOrdering.h:</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RecordLayout.h:</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> /home/tstellar/llvm/include/llvm/IR/GlobalVariable.h:</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> /home/tstellar/llvm/include/llvm/IR/GlobalValue.h:</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> CodeGenTypes.h:</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/CodeGen/CGFunctionInfo.h:</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> /home/tstellar/llvm/include/llvm/IR/Module.h:</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> /home/tstellar/llvm/include/llvm/IR/Function.h:</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> /home/tstellar/llvm/include/llvm/IR/Argument.h:</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> /home/tstellar/llvm/include/llvm/IR/GlobalAlias.h:</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrList.inc:</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> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Mangle.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> /home/tstellar/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprObjC.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetInfo.h:</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> /home/tstellar/llvm/include/llvm/Support/Debug.h:</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> CGCleanup.h:</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> CGRecordLayout.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtObjC.h:</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> /home/tstellar/llvm/include/llvm/IR/InlineAsm.h:</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> /home/tstellar/llvm/include/llvm/IR/IntrinsicInst.h:</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> /home/tstellar/llvm/include/llvm/IR/Intrinsics.h:</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> /home/tstellar/llvm/include/llvm/IR/Intrinsics.gen:</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> /home/tstellar/llvm/include/llvm/Support/CallSite.h:</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:26 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/CGObjCRuntime_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,462 @@
+<!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: CGObjCRuntime.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_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CGObjCRuntime.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CGObjCRuntime_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">//==- CGObjCRuntime.cpp - Interface to Shared Objective-C Runtime Features ==//</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 abstract class defines the interface for Objective-C runtime-specific</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// code generation.  It provides some concrete helper methods for functionality</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// shared between all (or most) of the Objective-C runtimes supported by clang.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="CGObjCRuntime_8h.html">CGObjCRuntime.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="CGCleanup_8h.html">CGCleanup.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="CGRecordLayout_8h.html">CGRecordLayout.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CodeGenFunction_8h.html">CodeGenFunction.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CodeGenModule_8h.html">CodeGenModule.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="RecordLayout_8h.html">clang/AST/RecordLayout.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="StmtObjC_8h.html" title="Defines the Objective-C statement AST node classes.">clang/AST/StmtObjC.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="CGFunctionInfo_8h.html">clang/CodeGen/CGFunctionInfo.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/Support/CallSite.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">using namespace </span>CodeGen;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">   29</a></span> <span class="keyword">static</span> uint64_t <a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">LookupFieldBitOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID,</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar) {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Container = Ivar-><a class="code" href="classclang_1_1ObjCIvarDecl.html#aa16c217c4e8952345ce46401db00e142" title="Return the class interface that this ivar is logically contained in; this is either the interface whe...">getContainingInterface</a>();</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   <span class="comment">// FIXME: We should eliminate the need to have ObjCImplementationDecl passed</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="comment">// in here; it should never be necessary because that should be the lexical</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   <span class="comment">// decl context for the ivar.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="comment">// If we know have an implementation (and the ivar is in it) then</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="comment">// look up in the implementation layout.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTRecordLayout.html">ASTRecordLayout</a> *RL;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keywordflow">if</span> (ID && <a class="code" href="namespaceclang.html#ad9d926b16adbdbc93705737b69d47cae" title="Determine whether two declarations declare the same entity.">declaresSameEntity</a>(ID-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), Container))</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     RL = &CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#af1acdfd23ab715bb4d79a03781cd6d9b" title="Get or compute information about the layout of the specified Objective-C implementation.">getASTObjCImplementationLayout</a>(ID);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     RL = &CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a0c252aa684cc2fc11ed5b105644284f3" title="Get or compute information about the layout of the specified Objective-C interface.">getASTObjCInterfaceLayout</a>(Container);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="comment">// Compute field index.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment">// FIXME: The index here is closely tied to how ASTContext::getObjCLayout is</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="comment">// implemented. This should be fixed to get the information from the layout</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="comment">// directly.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keywordtype">unsigned</span> Index = 0;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IVD = Container-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a33ad0524e4d449655e216893b85910e2">all_declared_ivar_begin</a>(); </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>        IVD; IVD = IVD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#ad4e167798de561f182d039520eb90b29">getNextIvar</a>()) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     <span class="keywordflow">if</span> (Ivar == IVD)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     ++Index;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   assert(Index < RL->getFieldCount() && <span class="stringliteral">"Ivar is not inside record layout!"</span>);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordflow">return</span> RL-><a class="code" href="classclang_1_1ASTRecordLayout.html#a5469e46f4a69644ac8747cef95095f3a">getFieldOffset</a>(Index);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7f5bb1f3fb5c80e526174171e94e125c">   65</a></span> uint64_t <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7f5bb1f3fb5c80e526174171e94e125c">CGObjCRuntime::ComputeIvarBaseOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID,</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keywordflow">return</span> <a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">LookupFieldBitOffset</a>(CGM, OID, 0, Ivar) / </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ac347a9a51b589a7f135c909692ef582e" title="Return the size of the character type, in bits.">getCharWidth</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> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a22625b7d1148be17baf10608ac8d9e37">   72</a></span> uint64_t <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7f5bb1f3fb5c80e526174171e94e125c">CGObjCRuntime::ComputeIvarBaseOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *OID,</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="keywordflow">return</span> <a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">LookupFieldBitOffset</a>(CGM, OID-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), OID, Ivar) / </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ac347a9a51b589a7f135c909692ef582e" title="Return the size of the character type, in bits.">getCharWidth</a>();</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> }</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#aea20ce5966fd6fb7db1d21aebf7d1fa1">   79</a></span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#aea20ce5966fd6fb7db1d21aebf7d1fa1">CGObjCRuntime::ComputeBitfieldBitOffset</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <span class="keywordflow">return</span> <a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">LookupFieldBitOffset</a>(CGM, ID, ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a1f5cbf5895d33b33402a9a8553e39733">getImplementation</a>(), Ivar);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7b361207e788e02a9da6a1bc76e0b8c9">   86</a></span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7b361207e788e02a9da6a1bc76e0b8c9">CGObjCRuntime::EmitValueForIvarAtOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>                                                <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID,</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>                                                <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *BaseValue,</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>                                                <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>                                                <span class="keywordtype">unsigned</span> CVRQualifiers,</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>                                                <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="comment">// Compute (type*) ( (char *) BaseValue + Offset)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> IvarTy = Ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   llvm::Type *LTy = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9e549d382da897b9d23ed3e2c65e6cf7">ConvertTypeForMem</a>(IvarTy);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(BaseValue, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   V = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateInBoundsGEP(V, Offset, <span class="stringliteral">"add.ptr"</span>);</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="keywordflow">if</span> (!Ivar-><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="l00099"></a><span class="lineno">   99</span>     V = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(V, llvm::PointerType::getUnqual(LTy));</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac85064af11c2b350b51e373aa33f3f3e">MakeNaturalAlignAddrLValue</a>(V, IvarTy);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     LV.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a046d8d562af26daba3ed3b781ba5ff54">getQuals</a>().<a class="code" href="classclang_1_1Qualifiers.html#a2da3a31143e2e9ac517bc0dcb04f311e">addCVRQualifiers</a>(CVRQualifiers);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>     <span class="keywordflow">return</span> LV;</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> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="comment">// We need to compute an access strategy for this bit-field. We are given the</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="comment">// offset to the first byte in the bit-field, the sub-byte offset is taken</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="comment">// from the original layout. We reuse the normal bit-field access strategy by</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="comment">// treating this as an access to a struct where the bit-field is in byte 0,</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="comment">// and adjust the containing type size as appropriate.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <span class="comment">// FIXME: Note that currently we make a very conservative estimate of the</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   <span class="comment">// alignment of the bit-field, because (a) it is not clear what guarantees the</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="comment">// runtime makes us, and (b) we don't have a way to specify that the struct is</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="comment">// at an alignment plus offset.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   <span class="comment">// Note, there is a subtle invariant here: we can only call this routine on</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="comment">// non-synthesized ivars but we may be called for synthesized ivars.  However,</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <span class="comment">// a synthesized ivar can never be a bit-field, so this is safe.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   uint64_t FieldBitOffset = <a class="code" href="CGObjCRuntime_8cpp.html#aaaec95af3e1a90c69474a515ed5ba0ca">LookupFieldBitOffset</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>, OID, 0, Ivar);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>   uint64_t BitOffset = FieldBitOffset % CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ac347a9a51b589a7f135c909692ef582e" title="Return the size of the character type, in bits.">getCharWidth</a>();</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   uint64_t AlignmentBits = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a0256b70c5f3ad3812e767f745196fa3f">getTarget</a>().<a class="code" href="classclang_1_1TargetInfo.html#a0bbfee5082c53194cfbf1b57b58f617a">getCharAlign</a>();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   uint64_t BitFieldSize = Ivar-><a class="code" href="classclang_1_1FieldDecl.html#ae5e97c5f219d8bd73934ef38453ae44a">getBitWidthValue</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>());</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> StorageSize =</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a5d5f812ba1100ca9ef1c1a812b2f5a24" title="Convert a size in bits to a size in characters.">toCharUnitsFromBits</a>(</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>       llvm::RoundUpToAlignment(BitOffset + BitFieldSize, AlignmentBits));</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a5d5f812ba1100ca9ef1c1a812b2f5a24" title="Convert a size in bits to a size in characters.">toCharUnitsFromBits</a>(AlignmentBits);</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">// Allocate a new CGBitFieldInfo object to describe this access.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="comment">// FIXME: This is incredibly wasteful, these should be uniqued or part of some</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="comment">// layout object. However, this is blocked on other cleanups to the</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="comment">// Objective-C code, so for now we just live with allocating a bunch of these</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <span class="comment">// objects.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <a class="code" href="structclang_1_1CodeGen_1_1CGBitFieldInfo.html" title="Structure with information about how a bitfield should be accessed.">CGBitFieldInfo</a> *Info = <span class="keyword">new</span> (CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>()) <a class="code" href="structclang_1_1CodeGen_1_1CGBitFieldInfo.html" title="Structure with information about how a bitfield should be accessed.">CGBitFieldInfo</a>(</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>     <a class="code" href="structclang_1_1CodeGen_1_1CGBitFieldInfo.html#ad8d73df07814bda59cacfb267bc586c7" title="Given a bit-field decl, build an appropriate helper object for accessing that field (which is expecte...">CGBitFieldInfo::MakeInfo</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>(), Ivar, BitOffset, BitFieldSize,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>                              CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a95106fc9aa2f8cbcf459d9915bacbfd2" title="Convert a size in characters to a size in bits.">toBits</a>(StorageSize),</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>                              Alignment.<a class="code" href="classclang_1_1CharUnits.html#a09546c4bc2fefb3cb4d964eb9f25d33a" title="getQuantity - Get the raw integer representation of this quantity.">getQuantity</a>()));</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   V = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(V,</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>                                 llvm::Type::getIntNPtrTy(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(),</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>                                                          Info-><a class="code" href="structclang_1_1CodeGen_1_1CGBitFieldInfo.html#ad53e4a88f644dc36a387078e3a12526a">StorageSize</a>));</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#aa8d0eeb02231b31ab9252b8132d40b67" title="Create a new object to represent a bit-field access.">LValue::MakeBitfield</a>(V, *Info,</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>                               IvarTy.<a class="code" href="classclang_1_1QualType.html#a0dbe9e2f24e3e7d8a3aaae1e69b0beeb">withCVRQualifiers</a>(CVRQualifiers),</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>                               Alignment);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> }</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   <span class="keyword">struct </span>CatchHandler {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Variable;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     llvm::BasicBlock *Block;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="structTypeInfo.html">TypeInfo</a>;</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="keyword">struct </span>CallObjCEndCatch : <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">EHScopeStack::Cleanup</a> {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     CallObjCEndCatch(<span class="keywordtype">bool</span> MightThrow, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Fn) :</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       MightThrow(MightThrow), Fn(Fn) {}</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     <span class="keywordtype">bool</span> MightThrow;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Fn;</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="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, Flags flags) {</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       <span class="keywordflow">if</span> (!MightThrow) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>         CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCall(Fn)->setDoesNotThrow();</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa5f13ed85d317257f72ba3a3f4e1d97e" title="Emits a call or invoke instruction to the given runtime function.">EmitRuntimeCallOrInvoke</a>(Fn);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     }</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   };</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> }</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a08724ef1c0f41136dad40f9cefb9b13d">  173</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a08724ef1c0f41136dad40f9cefb9b13d">CGObjCRuntime::EmitTryCatchStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtTryStmt.html" title="Represents Objective-C's @try ... @catch ... @finally statement.">ObjCAtTryStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>                                      llvm::Constant *beginCatchFn,</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>                                      llvm::Constant *endCatchFn,</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>                                      llvm::Constant *exceptionRethrowFn) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="comment">// Jump destination for falling out of catch bodies.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">CodeGenFunction::JumpDest</a> Cont;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a1e1017ae02939214e29748b63fd3f6b7" title="Retrieve the number of @catch statements in this try-catch-finally block.">getNumCatchStmts</a>())</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     Cont = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">getJumpDestInCurrentScope</a>(<span class="stringliteral">"eh.cont"</span>);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html" title="A class controlling the emission of a finally block.">CodeGenFunction::FinallyInfo</a> FinallyInfo;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtFinallyStmt.html" title="Represents Objective-C's @finally statement.">ObjCAtFinallyStmt</a> *Finally = S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#ae318ffee73b17ef7cb44df5ce5257c45" title="Retrieve the @finally statement, if any.">getFinallyStmt</a>())</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     FinallyInfo.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html#a7f0acf3309778396d73280990f4a530a">enter</a>(CGF, Finally->getFinallyBody(),</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>                       beginCatchFn, endCatchFn, exceptionRethrowFn);</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>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<CatchHandler, 8></a> Handlers;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="comment">// Enter the catch, if there is one.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a1e1017ae02939214e29748b63fd3f6b7" title="Retrieve the number of @catch statements in this try-catch-finally block.">getNumCatchStmts</a>()) {</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a1e1017ae02939214e29748b63fd3f6b7" title="Retrieve the number of @catch statements in this try-catch-finally block.">getNumCatchStmts</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtCatchStmt.html" title="Represents Objective-C's @catch statement.">ObjCAtCatchStmt</a> *CatchStmt = S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a7c4797189f6145dd84394294d8d5b04f" title="Retrieve a @catch statement.">getCatchStmt</a>(I);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *CatchDecl = CatchStmt-><a class="code" href="classclang_1_1ObjCAtCatchStmt.html#a2a5c6cdf3b6fdecb80bf2373c749d508">getCatchParamDecl</a>();</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>       Handlers.push_back(CatchHandler());</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>       CatchHandler &Handler = Handlers.back();</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>       Handler.Variable = CatchDecl;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>       Handler.Body = CatchStmt-><a class="code" href="classclang_1_1ObjCAtCatchStmt.html#aadda4ca401a39fa5f63fd4723ac0a54a">getCatchBody</a>();</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>       Handler.Block = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"catch"</span>);</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>       <span class="comment">// @catch(...) always matches.</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       <span class="keywordflow">if</span> (!CatchDecl) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>         Handler.TypeInfo = 0; <span class="comment">// catch-all</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>         <span class="comment">// Don't consider any other catches.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>       }</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>       Handler.TypeInfo = <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1f6fc246a15b6a108b04e2d4606194b9">GetEHType</a>(CatchDecl-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</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> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHCatchScope.html">EHCatchScope</a> *Catch = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab438c1f9ff2f8bb5e32953bea6593dd1">pushCatch</a>(Handlers.size());</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, E = Handlers.size(); I != E; ++I)</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       Catch-><a class="code" href="classclang_1_1CodeGen_1_1EHCatchScope.html#adc88de04a8c758b376d6de0a0b5ff684">setHandler</a>(I, Handlers[I].TypeInfo, Handlers[I].Block);</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>   </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <span class="comment">// Emit the try body.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a3a694d1a418a5abb7cfbfc0fe49afd94" title="Retrieve the @try body.">getTryBody</a>());</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <span class="comment">// Leave the try.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#a1e1017ae02939214e29748b63fd3f6b7" title="Retrieve the number of @catch statements in this try-catch-finally block.">getNumCatchStmts</a>())</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8c61c571269473854eeaba02ac6c63a0">popCatchScope</a>();</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="comment">// Remember where we were.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   CGBuilderTy::InsertPoint SavedIP = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.saveAndClearIP();</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   <span class="comment">// Emit the handlers.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, E = Handlers.size(); I != E; ++I) {</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     CatchHandler &Handler = Handlers[I];</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>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(Handler.Block);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *RawExn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a15e7d15f0497bb9b0a07d0d6dae1bf53">getExceptionFromSlot</a>();</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     <span class="comment">// Enter the catch.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Exn = RawExn;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     <span class="keywordflow">if</span> (beginCatchFn) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>       Exn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCall(beginCatchFn, RawExn, <span class="stringliteral">"exn.adjusted"</span>);</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>       cast<llvm::CallInst>(Exn)->setDoesNotThrow();</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">CodeGenFunction::LexicalScope</a> cleanups(CGF, Handler.Body->getSourceRange());</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">if</span> (endCatchFn) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>       <span class="comment">// Add a cleanup to leave the catch.</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>       <span class="keywordtype">bool</span> EndCatchMightThrow = (Handler.Variable == 0);</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>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CallObjCEndCatch>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a>,</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                                                 EndCatchMightThrow,</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>                                                 endCatchFn);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     }</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     <span class="comment">// Bind the catch parameter if it exists.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *CatchParam = Handler.Variable) {</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>       llvm::Type *CatchType = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(CatchParam->getType());</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CastExn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(Exn, CatchType);</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>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a361ac65d0e3162cda8f4da98876a54dd">EmitAutoVarDecl</a>(*CatchParam);</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>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CatchParamAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a82621c86a6f95d33ae07868357749654" title="GetAddrOfLocalVar - Return the address of a local variable.">GetAddrOfLocalVar</a>(CatchParam);</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>       <span class="keywordflow">switch</span> (CatchParam->getType().getQualifiers().getObjCLifetime()) {</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a056719970802d94ba3740489f709a96e">Qualifiers::OCL_Strong</a>:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>         CastExn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab8f93d18f0518fc32858adb46f0ac861">EmitARCRetainNonBlock</a>(CastExn);</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>         <span class="comment">// fallthrough</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a29b319bca942e44bf183ca2749b072b3" title="There is no lifetime qualification on this type.">Qualifiers::OCL_None</a>:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a1868aff47acf923ca643cb6950363615">Qualifiers::OCL_ExplicitNone</a>:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300afd7d211973aef2cc5945b96a963f0e4f" title="Assigning into this object requires a lifetime extension.">Qualifiers::OCL_Autoreleasing</a>:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>         CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(CastExn, CatchParamAddr);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       <span class="keywordflow">case</span> <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="l00273"></a><span class="lineno">  273</span>         CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac005c2c2b8bea21c81fbb348e80611b9">EmitARCInitWeak</a>(CatchParamAddr, CastExn);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>       }</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>     }</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a05d442e9157795067aa2be50e62ec">ObjCEHValueStack</a>.push_back(Exn);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(Handler.Body);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a05d442e9157795067aa2be50e62ec">ObjCEHValueStack</a>.pop_back();</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>     <span class="comment">// Leave any cleanups associated with the catch.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>     cleanups.ForceCleanup();</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>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5267fb1f19ad8f353488a7a12217117a" title="Terminate the current block by emitting a branch which might leave the current cleanup-protected scop...">EmitBranchThroughCleanup</a>(Cont);</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> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   <span class="comment">// Go back to the try-statement fallthrough.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.restoreIP(SavedIP);</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>   <span class="comment">// Pop out of the finally.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1ObjCAtTryStmt.html#ae318ffee73b17ef7cb44df5ce5257c45" title="Retrieve the @finally statement, if any.">getFinallyStmt</a>())</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     FinallyInfo.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html#a9b7a24aa9a952d483aec509f094d395d">exit</a>(CGF);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>   <span class="keywordflow">if</span> (Cont.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#ae61f66e6bd6a67610116a5fab1b72294">isValid</a>())</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(Cont.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>());</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> }</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>   <span class="keyword">struct </span>CallSyncExit : <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">EHScopeStack::Cleanup</a> {</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SyncExitFn;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SyncArg;</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>     CallSyncExit(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SyncExitFn, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SyncArg)</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>       : SyncExitFn(SyncExitFn), SyncArg(SyncArg) {}</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, Flags flags) {</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCall(SyncExitFn, SyncArg)->setDoesNotThrow();</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     }</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   };</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> }</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1781c58baeb2aa3e0230df03f037a4a7">  312</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1781c58baeb2aa3e0230df03f037a4a7">CGObjCRuntime::EmitAtSynchronizedStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>                                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>                                            llvm::Function *syncEnterFn,</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>                                            llvm::Function *syncExitFn) {</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html" title="Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited...">CodeGenFunction::RunCleanupsScope</a> cleanups(CGF);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   <span class="comment">// Evaluate the lock operand.  This is guaranteed to dominate the</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="comment">// ARC release and lock-release cleanups.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *lockExpr = S.<a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html#a0b42356314e91db5132f170fa041c3e3">getSynchExpr</a>();</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *lock;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>   <span class="keywordflow">if</span> (CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount) {</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>     lock = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a89df616486925c940d4d6d2388feacbe">EmitARCRetainScalarExpr</a>(lockExpr);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>     lock = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a05d91b79ac8319906346cdb3b3ad6948">EmitObjCConsumeObject</a>(lockExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), lock);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     lock = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(lockExpr);</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>   lock = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(lock, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</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>   <span class="comment">// Acquire the lock.</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCall(syncEnterFn, lock)->setDoesNotThrow();</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   <span class="comment">// Register an all-paths cleanup to release the lock.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CallSyncExit>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a>, syncExitFn, lock);</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="comment">// Emit the body of the statement.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(S.<a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html#a313a9ed284caeab2213c6d455c26d003">getSynchBody</a>());</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="comment"></span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">/// Compute the pointer-to-function type to which a message send</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">/// should be casted in order to correctly call the given method</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">/// with the given arguments.</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">/// \param method - may be null</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">/// \param resultType - the result type to use if there's no method</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">/// \param callArgs - the actual arguments, including implicit ones</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment"></span><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">CGObjCRuntime::MessageSendInfo</a></div>
+<div class="line"><a name="l00348"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ad1d540d665c4bf03c345aae1d9b4f459">  348</a></span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ad1d540d665c4bf03c345aae1d9b4f459">CGObjCRuntime::getMessageSendInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *method,</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>                                   <a class="code" href="classclang_1_1QualType.html">QualType</a> resultType,</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>                                   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &callArgs) {</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   <span class="comment">// If there's a method, use information from that.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>   <span class="keywordflow">if</span> (method) {</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &signature =</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>       <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#af46a93b855143dbf86a428e50205d105">arrangeObjCMessageSendSignature</a>(method, callArgs[0].Ty);</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>     llvm::PointerType *signatureType =</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>       <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a5e6c7473f14643c5a5b45ac9c0bb2ef8" title="GetFunctionType - Get the LLVM function type for.">GetFunctionType</a>(signature)->getPointerTo();</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>     <span class="comment">// If that's not variadic, there's no need to recompute the ABI</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     <span class="comment">// arrangement.</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="keywordflow">if</span> (!signature.<a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html#af0986db3de02a0f943e4b698166afb4e">isVariadic</a>())</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>       <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">MessageSendInfo</a>(signature, signatureType);</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <span class="comment">// Otherwise, there is.</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a> einfo = signature.<a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html#a2641287e0c18c5290e351eb7d27750c2">getExtInfo</a>();</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &argsInfo =</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>       <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(resultType, callArgs, einfo,</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>                                              signature.<a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html#ad58678b0735829d8af5871209ca49ddf">getRequiredArgs</a>());</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">MessageSendInfo</a>(argsInfo, signatureType);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>   }</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="comment">// There's no method;  just use a default CC.</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &argsInfo =</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(resultType, callArgs, </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>                                            <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>                                            <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>);</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <span class="comment">// Derive the signature to call from that.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   llvm::PointerType *signatureType =</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a5e6c7473f14643c5a5b45ac9c0bb2ef8" title="GetFunctionType - Get the LLVM function type for.">GetFunctionType</a>(argsInfo)->getPointerTo();</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">MessageSendInfo</a>(argsInfo, signatureType);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:26 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/CGObjCRuntime_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,673 @@
+<!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: CGObjCRuntime.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_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li><li class="navelem"><a class="el" href="dir_e8103833ce80ba077e945e011f96d4ad.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CGObjCRuntime.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CGObjCRuntime_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/CodeGen/Release+Asserts/CGObjCRuntime.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/Release+Asserts/CGObjCRuntime.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CGObjCRuntime.cpp CGObjCRuntime.h CGBuilder.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/include/llvm/IR/IRBuilder.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/IR/BasicBlock.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/IR/User.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/IR/Use.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/DebugLoc.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/IR/SymbolTableListTraits.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/IR/DataLayout.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/IR/DerivedTypes.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/IR/Type.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/PassSupport.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/InitializePasses.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/PassRegistry.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/Support/Atomic.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/Support/Valgrind.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/PassAnalysisSupport.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/IR/Instructions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/IR/Attributes.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a>.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/IR/InstrTypes.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/include/llvm/IR/OperandTraits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/IR/LLVMContext.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/IR/Operator.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/IR/Constants.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/IR/Constant.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/Support/GetElementPtrTypeIterator.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/Support/ConstantFolder.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/Support/ValueHandle.h CGCall.h \
+ CGValue.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h EHScopeStack.h \
+ ABIInfo.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../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 \
+ CGCleanup.h CGRecordLayout.h CodeGenFunction.h CGDebugInfo.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Frontend/CodeGenOptions.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Frontend/CodeGenOptions.def \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/include/llvm/DIBuilder.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/include/llvm/DebugInfo.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/IR/Metadata.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/include/llvm/Support/Dwarf.h CodeGenModule.h \
+ CGVTables.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BaseSubobject.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/GlobalDecl.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ABI.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/VTableBuilder.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CXXInheritance.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeOrdering.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RecordLayout.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/include/llvm/IR/GlobalVariable.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/include/llvm/IR/GlobalValue.h CodeGenTypes.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/CodeGen/CGFunctionInfo.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/include/llvm/IR/Module.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/include/llvm/IR/Function.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/include/llvm/IR/Argument.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/include/llvm/IR/GlobalAlias.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Mangle.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>  /home/tstellar/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>  /home/tstellar/llvm/include/llvm/Support/Debug.h \</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>  /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>  /home/tstellar/llvm/include/llvm/Support/CallSite.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> CGObjCRuntime.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> CGBuilder.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/IR/IRBuilder.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/ADT/ArrayRef.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/SmallVector.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/Support/AlignOf.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/Support/Compiler.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/Config/llvm-config.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/MathExtras.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/SwapByteOrder.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/Support/DataTypes.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/type_traits.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.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/Twine.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/Support/ErrorHandling.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/IR/BasicBlock.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/ilist.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/IR/Instruction.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/IR/User.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/IR/Use.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/Support/Casting.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-c/Core.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/Support/DebugLoc.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/IR/Instruction.def:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/include/llvm/IR/SymbolTableListTraits.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/include/llvm/IR/DataLayout.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/include/llvm/ADT/DenseMap.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/DenseMapInfo.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/include/llvm/IR/DerivedTypes.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/include/llvm/IR/Type.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/include/llvm/ADT/APInt.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/Pass.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/PassSupport.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/Pass.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/include/llvm/InitializePasses.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/include/llvm/PassRegistry.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/Atomic.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/include/llvm/Support/Valgrind.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/include/llvm/PassAnalysisSupport.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/include/llvm/IR/Instructions.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/include/llvm/IR/Attributes.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.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/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a>.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/include/llvm/IR/InstrTypes.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/include/llvm/IR/OperandTraits.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/include/llvm/IR/LLVMContext.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/IR/Operator.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/IR/Constants.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/IR/Constant.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/include/llvm/Support/GetElementPtrTypeIterator.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/include/llvm/Support/ConstantFolder.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/ValueHandle.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> CGCall.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> CGValue.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTContext.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/CodeGen/../../include/clang/AST/ASTTypeTraits.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/CodeGen/../../include/clang/AST/ASTFwd.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/CodeGen/../../include/clang/AST/DeclNodes.inc:</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/CodeGen/../../include/clang/AST/StmtNodes.inc:</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/CodeGen/../../include/clang/AST/TypeNodes.def:</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/CodeGen/../../include/clang/AST/Decl.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/CodeGen/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/LLVM.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/include/llvm/ADT/APSInt.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/include/llvm/ADT/PointerUnion.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/CodeGen/../../include/clang/AST/DeclBase.h:</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/CodeGen/../../include/clang/AST/AttrIterator.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/CodeGen/../../include/clang/AST/DeclarationName.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/CodeGen/../../include/clang/Basic/IdentifierTable.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/CodeGen/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/OperatorKinds.def:</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/CodeGen/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TokenKinds.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/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/CodeGen/../../include/clang/Basic/PartialDiagnostic.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/CodeGen/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticIDs.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/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/DiagnosticOptions.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/CodeGen/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/SourceLocation.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/STLExtras.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/CodeGen/../../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="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/CodeGen/../../include/clang/Basic/Specifiers.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/include/llvm/Support/PrettyStackTrace.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/CodeGen/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CharUnits.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/CodeGen/../../include/clang/AST/Redeclarable.h:</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/CodeGen/../../include/clang/AST/Type.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/CodeGen/../../include/clang/AST/NestedNameSpecifier.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/CodeGen/../../include/clang/AST/TemplateName.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/CodeGen/../../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="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/CodeGen/../../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="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> /home/tstellar/llvm/include/llvm/ADT/Optional.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/CodeGen/../../include/clang/AST/BuiltinTypes.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/include/llvm/Support/raw_ostream.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/include/llvm/Support/FileSystem.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/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> /home/tstellar/llvm/include/llvm/Support/system_error.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/CodeGen/../../include/clang/AST/Stmt.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/CodeGen/../../include/clang/AST/DeclGroup.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/CodeGen/../../include/clang/AST/StmtIterator.h:</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/CodeGen/../../include/clang/Basic/CapturedStmt.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/CodeGen/../../include/clang/AST/TemplateBase.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/CodeGen/../../include/clang/AST/TypeLoc.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/tools/clang/lib/CodeGen/../../include/clang/AST/TypeLocNodes.def:</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/tools/clang/lib/CodeGen/../../include/clang/AST/CanonicalType.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/CodeGen/../../include/clang/AST/CommentCommandTraits.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/CodeGen/../../include/clang/Basic/CommentOptions.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/CodeGen/../../include/clang/AST/CommentCommandList.inc:</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/CodeGen/../../include/clang/AST/PrettyPrinter.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/CodeGen/../../include/clang/Basic/LangOptions.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/CodeGen/../../include/clang/Basic/ObjCRuntime.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/CodeGen/../../include/clang/Basic/VersionTuple.h:</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/include/llvm/ADT/Triple.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/CodeGen/../../include/clang/Basic/Sanitizers.def:</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/CodeGen/../../include/clang/Basic/LangOptions.def:</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/CodeGen/../../include/clang/Basic/OpenCLExtensions.def:</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/CodeGen/../../include/clang/AST/RawCommentList.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/CodeGen/../../include/clang/Basic/SourceManager.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/CodeGen/../../include/clang/Basic/FileManager.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/tools/clang/lib/CodeGen/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/CodeGen/../../include/clang/Basic/AddressSpaces.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/include/llvm/ADT/SmallPtrSet.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/ADT/TinyPtrVector.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> EHScopeStack.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> ABIInfo.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/tools/clang/lib/CodeGen/../../include/clang/AST/DeclObjC.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/CodeGen/../../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="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> CGCleanup.h:</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> CGRecordLayout.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> CodeGenFunction.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> CGDebugInfo.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/CodeGen/../../include/clang/AST/Expr.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/CodeGen/../../include/clang/AST/ASTVector.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/CodeGen/../../include/clang/AST/DeclAccessPair.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/CodeGen/../../include/clang/AST/OperationKinds.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/CodeGen/../../include/clang/Basic/CharInfo.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/CodeGen/../../include/clang/Basic/TypeTraits.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/CodeGen/../../include/clang/Basic/Builtins.def:</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/CodeGen/../../include/clang/Frontend/CodeGenOptions.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/CodeGen/../../include/clang/Frontend/CodeGenOptions.def:</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/include/llvm/DIBuilder.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/include/llvm/DebugInfo.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/include/llvm/IR/Metadata.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/include/llvm/Support/Dwarf.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> CodeGenModule.h:</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> CGVTables.h:</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/BaseSubobject.h:</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/GlobalDecl.h:</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/UnresolvedSet.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/ABI.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/VTableBuilder.h:</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/CXXInheritance.h:</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/TypeOrdering.h:</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> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/RecordLayout.h:</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> /home/tstellar/llvm/include/llvm/IR/GlobalVariable.h:</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> /home/tstellar/llvm/include/llvm/IR/GlobalValue.h:</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> CodeGenTypes.h:</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/CodeGen/CGFunctionInfo.h:</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> /home/tstellar/llvm/include/llvm/IR/Module.h:</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> /home/tstellar/llvm/include/llvm/IR/Function.h:</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> /home/tstellar/llvm/include/llvm/IR/Argument.h:</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> /home/tstellar/llvm/include/llvm/IR/GlobalAlias.h:</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Attrs.inc:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/Mangle.h:</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/Module.h:</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> /home/tstellar/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h:</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/ExprObjC.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetInfo.h:</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> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> /home/tstellar/llvm/include/llvm/Support/Debug.h:</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> /home/tstellar/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/StmtObjC.h:</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> /home/tstellar/llvm/include/llvm/Support/CallSite.h:</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:26 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/CGObjCRuntime_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjCRuntime_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,378 @@
+<!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: CGObjCRuntime.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CGObjCRuntime.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CGObjCRuntime_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===----- CGObjCRuntime.h - Interface to ObjC Runtimes ---------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This provides an abstract class for Objective-C code generation.  Concrete</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// subclasses of this implement code generation for specific Objective-C</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// runtime libraries.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#ifndef CLANG_CODEGEN_OBCJRUNTIME_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_CODEGEN_OBCJRUNTIME_H</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="CGBuilder_8h.html">CGBuilder.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CGCall_8h.html">CGCall.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CGValue_8h.html">CGValue.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="IdentifierTable_8h.html" title="Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.">clang/Basic/IdentifierTable.h</a>"</span> <span class="comment">// Selector</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keyword">class </span>Constant;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   <span class="keyword">class </span>Function;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>   <span class="keyword">class </span>Module;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <span class="keyword">class </span>StructLayout;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">class </span>StructType;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="keyword">class </span>Type;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keyword">class </span><a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</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> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="keyword">namespace </span>CodeGen {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">class </span>CodeGenFunction;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> }</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="keyword">class </span>FieldDecl;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="keyword">class </span>ObjCAtTryStmt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">class </span>ObjCAtThrowStmt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keyword">class </span>ObjCAtSynchronizedStmt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keyword">class </span>ObjCContainerDecl;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keyword">class </span>ObjCCategoryImplDecl;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">class </span>ObjCImplementationDecl;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <span class="keyword">class </span>ObjCInterfaceDecl;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="keyword">class </span>ObjCMessageExpr;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keyword">class </span>ObjCMethodDecl;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="keyword">class </span>ObjCProtocolDecl;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">class </span>Selector;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="keyword">class </span>ObjCIvarDecl;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keyword">class </span>ObjCStringLiteral;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keyword">class </span>BlockDeclRefExpr;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="keyword">namespace </span>CodeGen {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keyword">class </span>CodeGenModule;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="keyword">class </span>CGBlockInfo;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">// FIXME: Several methods should be pure virtual but aren't to avoid the</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">// partially-implemented subclass breaking.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">/// Implements runtime-specific code generation functions.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html">   63</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html" title="Implements runtime-specific code generation functions.">CGObjCRuntime</a> {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">   65</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac9bd9aae81ba7075d5317d01699403e9">   66</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac9bd9aae81ba7075d5317d01699403e9">CGObjCRuntime</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>) : CGM(CGM) {}</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="comment">// Utility functions for unified ivar access. These need to</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="comment">// eventually be folded into other places (the structure layout</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="comment">// code).</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment"></span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">  /// Compute an offset to the given ivar, suitable for passing to</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">  /// EmitValueForIvarAtOffset.  Note that the correct handling of</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// bit-fields is carefully coordinated by these two, use caution!</span></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">  /// The latter overload is suitable for computing the offset of a</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// sythesized ivar.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment"></span>  uint64_t <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7f5bb1f3fb5c80e526174171e94e125c">ComputeIvarBaseOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID,</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   uint64_t <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7f5bb1f3fb5c80e526174171e94e125c">ComputeIvarBaseOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *OID,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7b361207e788e02a9da6a1bc76e0b8c9">EmitValueForIvarAtOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID,</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *BaseValue,</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar,</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>                                   <span class="keywordtype">unsigned</span> CVRQualifiers,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>);<span class="comment"></span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  /// Emits a try / catch statement.  This function is intended to be called by</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  /// subclasses, and provides a generic mechanism for generating these, which</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// should be usable by all runtimes.  The caller must provide the functions</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  /// to call when entering and exiting a \@catch() block, and the function</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">  /// used to rethrow exceptions.  If the begin and end catch functions are</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">  /// NULL, then the function assumes that the EH personality function provides</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">  /// the thrown object directly.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a08724ef1c0f41136dad40f9cefb9b13d">EmitTryCatchStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtTryStmt.html" title="Represents Objective-C's @try ... @catch ... @finally statement.">ObjCAtTryStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>                         llvm::Constant *beginCatchFn,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>                         llvm::Constant *endCatchFn,</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>                         llvm::Constant *exceptionRethrowFn);<span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// Emits an \@synchronize() statement, using the \p syncEnterFn and</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  /// \p syncExitFn arguments as the functions called to lock and unlock</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">  /// the object.  This function can be called by subclasses that use</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">  /// zero-cost exception handling.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1781c58baeb2aa3e0230df03f037a4a7">EmitAtSynchronizedStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                             llvm::Function *syncEnterFn,</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>                             llvm::Function *syncExitFn);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a10c1ef47e73cf8d96c8941f8716429b3">~CGObjCRuntime</a>();</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment"></span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">  /// Generate the function required to register all Objective-C components in</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// this compilation unit with the runtime library.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a3446d3331a55ab8ce8ea8f052405393e">ModuleInitFunction</a>() = 0;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment"></span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">  /// Get a selector for the specified name and type values. The</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  /// return value should have the LLVM type for pointer-to</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// ASTContext::getObjCSelType().</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a221633f2ae695a5fe9ab259baad8630d">GetSelector</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>                                    <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel, <span class="keywordtype">bool</span> lval=<span class="keyword">false</span>) = 0;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">  /// Get a typed selector.</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a221633f2ae695a5fe9ab259baad8630d">GetSelector</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>                                    <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Method) = 0;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment"></span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">  /// Get the type constant to catch for the given ObjC pointer type.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  /// This is used externally to implement catching ObjC types in C++.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  /// Runtimes which don't support this should add the appropriate</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">  /// error to Sema.</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1f6fc246a15b6a108b04e2d4606194b9">GetEHType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) = 0;</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">  /// Generate a constant string object.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a42b91cd63f020ffaf9d2cc44a974e22b" title="Generate a constant string object.">GenerateConstantString</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a> *) = 0;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">  /// Generate a category.  A category contains a list of methods (and</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">  /// accompanying metadata) and a list of protocols.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a5be32ac7921dbe0406999d728907ff8c">GenerateCategory</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a> *OCD) = 0;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// Generate a class structure for this class.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a97ec1981fd2ed902780e62500385a88b" title="Generate a class structure for this class.">GenerateClass</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *OID) = 0;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment"></span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">  /// Register an class alias.</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a59ddf17db53c60df9e4618c145f0753f" title="Register an class alias.">RegisterAlias</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html">ObjCCompatibleAliasDecl</a> *OAD) = 0;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">  /// Generate an Objective-C message send operation.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">  /// \param Method - The method being called, this may be null if synthesizing</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">  /// a property setter or getter.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">CodeGen::RValue</a></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>                       <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> ReturnSlot,</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>                       <a class="code" href="classclang_1_1QualType.html">QualType</a> ResultType,</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</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="l00157"></a><span class="lineno">  157</span>                       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Receiver,</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &CallArgs,</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class = 0,</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Method = 0) = 0;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment"></span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">  /// Generate an Objective-C message send operation to the super</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">  /// class initiated in a method for Class and with the given Self</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  /// object.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">  /// \param Method - The method being called, this may be null if synthesizing</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">  /// a property setter or getter.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">CodeGen::RValue</a></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a4d4cda33eaeec331dc9af9b09fa6a7a7">GenerateMessageSendSuper</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>                            <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> ReturnSlot,</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>                            <a class="code" href="classclang_1_1QualType.html">QualType</a> ResultType,</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</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="l00173"></a><span class="lineno">  173</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class,</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>                            <span class="keywordtype">bool</span> isCategoryImpl,</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Self,</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>                            <span class="keywordtype">bool</span> IsClassMessage,</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &CallArgs,</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Method = 0) = 0;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment"></span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">  /// Emit the code to return the named protocol as an object, as in a</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">  /// \@protocol expression.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a0b39a85a2b54714ff724171c1321fe41">GenerateProtocolRef</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>                                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *OPD) = 0;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment"></span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">  /// Generate the named protocol.  Protocols contain method metadata but no</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">  /// implementations.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#abbbf06795c76a37acace217a12eb15a2">GenerateProtocol</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *OPD) = 0;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment"></span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">  /// Generate a function preamble for a method with the specified</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">  /// types.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment"></span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <span class="comment">// FIXME: Current this just generates the Function definition, but really this</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>   <span class="comment">// should also be generating the loads of the parameters, as the runtime</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="comment">// should have full control over how parameters are passed.</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   <span class="keyword">virtual</span> llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a63ae192ce38a046152ed9ad9e973025b">GenerateMethod</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD,</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>                                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *CD) = 0;</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">  /// Return the runtime function for getting properties.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#abe26b398a7e1eebfb516b857e44e6400" title="Return the runtime function for getting properties.">GetPropertyGetFunction</a>() = 0;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment"></span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">  /// Return the runtime function for setting properties.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a3827b2573fc5daff8a4a1f26140a4fa1" title="Return the runtime function for setting properties.">GetPropertySetFunction</a>() = 0;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment"></span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">  /// Return the runtime function for optimized setting properties.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af111b611ca9e3b809d937a526683a64e" title="Return the runtime function for optimized setting properties.">GetOptimizedPropertySetFunction</a>(<span class="keywordtype">bool</span> atomic, </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>                                                           <span class="keywordtype">bool</span> copy) = 0;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="comment">// API for atomic copying of qualified aggregates in getter.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1d7d21b5b6b69d270a26f9c8d35a36a2">GetGetStructFunction</a>() = 0;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <span class="comment">// API for atomic copying of qualified aggregates in setter.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ab1ac01171227a508fb049fb87acc639e">GetSetStructFunction</a>() = 0;<span class="comment"></span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">  /// API for atomic copying of qualified aggregates with non-trivial copy</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">  /// assignment (c++) in setter.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a236752ccbcfa81ee63fff1f675da43fe">GetCppAtomicObjectSetFunction</a>() = 0;<span class="comment"></span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">  /// API for atomic copying of qualified aggregates with non-trivial copy</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">  /// assignment (c++) in getter.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#aa2dc3538b71ffa6da7ba80f213f73127">GetCppAtomicObjectGetFunction</a>() = 0;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">  /// GetClass - Return a reference to the class for the given</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">  /// interface decl.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a39cd307cfd5856cd35c684ff4f388a6e">GetClass</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID) = 0;</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>   </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af458b9f40602c3cbcb12ddc7c99fb630">  225</a></span>   <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af458b9f40602c3cbcb12ddc7c99fb630">EmitNSAutoreleasePoolClassRef</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     llvm_unreachable(<span class="stringliteral">"autoreleasepool unsupported in this ABI"</span>);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   }</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">  /// EnumerationMutationFunction - Return the function that's called by the</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">  /// compiler when a mutation is detected during foreach iteration.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment"></span>  <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a6c4b46775e5def1156e767bf433e7848">EnumerationMutationFunction</a>() = 0;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#afeb2aa743f9b018413af31c9a976de43">EmitSynchronizedStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) = 0;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a46a725e1a00725e08f57b7d0df08a679">EmitTryStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtTryStmt.html" title="Represents Objective-C's @try ... @catch ... @finally statement.">ObjCAtTryStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) = 0;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a71b44b66c20fe78240df7c1547ea7262">EmitThrowStmt</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>                              <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtThrowStmt.html" title="Represents Objective-C's @throw statement.">ObjCAtThrowStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>                              <span class="keywordtype">bool</span> ClearInsertionPoint=<span class="keyword">true</span>) = 0;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#abd56f60462d301077e883e68ed3a0a20">EmitObjCWeakRead</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *AddrWeakObj) = 0;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a76199d79668ea4b7ecbeb67781f6ffad">EmitObjCWeakAssign</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dest) = 0;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af77c93b4c371d40eeadddf4a116c61f4">EmitObjCGlobalAssign</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>                                     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dest,</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>                                     <span class="keywordtype">bool</span> threadlocal=<span class="keyword">false</span>) = 0;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1a19b1a6b1aace6b60a579e1bd9725cc">EmitObjCIvarAssign</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dest,</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *ivarOffset) = 0;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a28256878d6a4e2bec747f4d942c6ca3c">EmitObjCStrongCastAssign</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dest) = 0;</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>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a4a9b1ed52de4de25683e18297db5d31d">EmitObjCValueForIvar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>                                       <a class="code" href="classclang_1_1QualType.html">QualType</a> ObjectTy,</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>                                       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *BaseValue,</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar,</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>                                       <span class="keywordtype">unsigned</span> CVRQualifiers) = 0;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keyword">virtual</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ab142e96801e47d133c85c6c8d180b036">EmitIvarOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Interface,</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar) = 0;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a7aeb2a65629c8594093f25ef67bc5f47">EmitGCMemmoveCollectable</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGen::CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DestPtr,</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SrcPtr,</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Size) = 0;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a86349fcf106c85ac5dec0526f60f9e6a">BuildGCBlockLayout</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CodeGen::CGBlockInfo</a> &blockInfo) = 0;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#acfd4bf069ea637e6f3c9b43854375558">BuildRCBlockLayout</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CodeGen::CGBlockInfo</a> &blockInfo) = 0;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>   <span class="keyword">virtual</span> llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#afaffc92c863315f94d08b7acfcddcc3a">BuildByrefLayout</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>                                            <a class="code" href="classclang_1_1QualType.html">QualType</a> T) = 0;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   <span class="keyword">virtual</span> llvm::GlobalVariable *<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af393814504ae4e0e4e0e60606a46d352">GetClassGlobal</a>(<span class="keyword">const</span> std::string &Name) = 0;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">  273</a></span>   <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html">MessageSendInfo</a> {</div>
+<div class="line"><a name="l00274"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#ac543c8bae9e4a430609ee379f192d02e">  274</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &<a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#ac543c8bae9e4a430609ee379f192d02e">CallInfo</a>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#a219f3fcdbb561e3e37aef042d6421a1e">  275</a></span>     llvm::PointerType *<a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#a219f3fcdbb561e3e37aef042d6421a1e">MessengerType</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#a6760c15064724929f66dae3949575f82">  277</a></span>     <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#a6760c15064724929f66dae3949575f82">MessageSendInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &callInfo,</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>                     llvm::PointerType *messengerType)</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>       : <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#ac543c8bae9e4a430609ee379f192d02e">CallInfo</a>(callInfo), <a class="code" href="structclang_1_1CodeGen_1_1CGObjCRuntime_1_1MessageSendInfo.html#a219f3fcdbb561e3e37aef042d6421a1e">MessengerType</a>(messengerType) {}</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> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   MessageSendInfo <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ad1d540d665c4bf03c345aae1d9b4f459">getMessageSendInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *method,</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>                                      <a class="code" href="classclang_1_1QualType.html">QualType</a> resultType,</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>                                      <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &callArgs);</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>   <span class="comment">// FIXME: This probably shouldn't be here, but the code to compute</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="comment">// it is here.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#aea20ce5966fd6fb7db1d21aebf7d1fa1">ComputeBitfieldBitOffset</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGen::CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ac69f976c060ee419a70b674b54a93680">CGM</a>,</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">/// Creates an instance of an Objective-C runtime class.</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment"></span><span class="comment">//TODO: This should include some way of selecting which runtime to target.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> CGObjCRuntime *<a class="code" href="namespaceclang_1_1CodeGen.html#aa1cd18b8632357c67eef47b27b3d3ce4" title="Creates an instance of an Objective-C runtime class.">CreateGNUObjCRuntime</a>(CodeGenModule &CGM);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> CGObjCRuntime *<a class="code" href="namespaceclang_1_1CodeGen.html#aafc84f69c1d1f305773727f49e7abc9c">CreateMacObjCRuntime</a>(CodeGenModule &CGM);</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> }</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> }</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:26 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/CGObjC_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjC_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjC_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CGObjC_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,3142 @@
+<!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: CGObjC.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_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CGObjC.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CGObjC_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">//===---- CGBuiltin.cpp - Emit LLVM Code for builtins ---------------------===//</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 contains code to emit Objective-C code as LLVM code.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="CGDebugInfo_8h.html">CGDebugInfo.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="CGObjCRuntime_8h.html">CGObjCRuntime.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="CodeGenFunction_8h.html">CodeGenFunction.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="CodeGenModule_8h.html">CodeGenModule.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="lib_2CodeGen_2TargetInfo_8h.html">TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="StmtObjC_8h.html" title="Defines the Objective-C statement AST node classes.">clang/AST/StmtObjC.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="Diagnostic_8h.html" title="Defines the Diagnostic-related interfaces.">clang/Basic/Diagnostic.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="CGFunctionInfo_8h.html">clang/CodeGen/CGFunctionInfo.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/Support/CallSite.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/IR/DataLayout.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/IR/InlineAsm.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">using namespace </span>CodeGen;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a4e6d1446c7f7321cd20ad1dee9829626">   31</a></span> <span class="keyword">typedef</span> llvm::PointerIntPair<llvm::Value*,1,bool> <a class="code" href="CGObjC_8cpp.html#a4e6d1446c7f7321cd20ad1dee9829626">TryEmitResult</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">static</span> <a class="code" href="CGObjC_8cpp.html#a4e6d1446c7f7321cd20ad1dee9829626">TryEmitResult</a></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <a class="code" href="CGObjC_8cpp.html#a6016ebbcaed5013f4729ecbf77454059">tryEmitARCRetainScalarExpr</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *e);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="CGObjC_8cpp.html#a4b3a34cf547b2ee840e66727824fac0f" title="Adjust the type of the result of an Objective-C message send expression when the method has a related...">AdjustRelatedResultType</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>                                       <a class="code" href="classclang_1_1QualType.html">QualType</a> ET,</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Method,</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>                                       <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Result);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment"></span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">/// Given the address of a variable of pointer type, find the correct</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">/// null to store into it.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a463c0cd8f7b9851d73838e56efed2deb">   41</a></span> <span class="comment"></span><span class="keyword">static</span> llvm::Constant *<a class="code" href="CGObjC_8cpp.html#a463c0cd8f7b9851d73838e56efed2deb">getNullForVariable</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr) {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   llvm::Type *<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="l00043"></a><span class="lineno">   43</span>     cast<llvm::PointerType>(addr->getType())-><a class="code" href="SemaChecking_8cpp.html#a9f6c9a015ec06db5f86672533b582823">getElementType</a>();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keywordflow">return</span> llvm::ConstantPointerNull::get(cast<llvm::PointerType>(type));</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">/// Emits an instance of NSConstantString representing the object.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae252100bf4a3dbea8238874f326f5e34">   48</a></span> <span class="comment"></span><a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae252100bf4a3dbea8238874f326f5e34" title="Emits an instance of NSConstantString representing the object.">CodeGenFunction::EmitObjCStringLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a> *E)</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   llvm::Constant *C = </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a42b91cd63f020ffaf9d2cc44a974e22b" title="Generate a constant string object.">GenerateConstantString</a>(E-><a class="code" href="classclang_1_1ObjCStringLiteral.html#a6cb1da3cba4a12ffd3c7f33c8bc78114">getString</a>());</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="comment">// FIXME: This bitcast should just be made an invariant on the Runtime.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keywordflow">return</span> llvm::ConstantExpr::getBitCast(C, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()));</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment"></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">/// EmitObjCBoxedExpr - This routine generates code to call</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">/// the appropriate expression boxing method. This will either be</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">/// one of +[NSNumber numberWith<Type>:], or +[NSString stringWithUTF8String:].</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment"></span><a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a79d6242fb95fce150f494ca9935f6225">   61</a></span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a79d6242fb95fce150f494ca9935f6225">CodeGenFunction::EmitObjCBoxedExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCBoxedExpr.html">ObjCBoxedExpr</a> *E) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="comment">// Generate the correct selector for this literal's concrete type.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *SubExpr = E-><a class="code" href="classclang_1_1ObjCBoxedExpr.html#ab00145886485e357d5f37eea7d975615">getSubExpr</a>();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="comment">// Get the method.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *BoxingMethod = E-><a class="code" href="classclang_1_1ObjCBoxedExpr.html#accef0a484abac0ecfa2b9bd123e57c8b">getBoxingMethod</a>();</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   assert(BoxingMethod && <span class="stringliteral">"BoxingMethod is null"</span>);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   assert(BoxingMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa8cc27a94f7b64eee3cc0661304d4295">isClassMethod</a>() && <span class="stringliteral">"BoxingMethod must be a class method"</span>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel = BoxingMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="comment">// Generate a reference to the class pointer, which will be the receiver.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <span class="comment">// Assumes that the method was introduced in the class that should be</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="comment">// messaged (avoids pulling it out of the result type).</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html" title="Implements runtime-specific code generation functions.">CGObjCRuntime</a> &Runtime = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ClassDecl = BoxingMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Receiver = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a39cd307cfd5856cd35c684ff4f388a6e">GetClass</a>(*<span class="keyword">this</span>, ClassDecl);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *argDecl = *BoxingMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>();</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgQT = argDecl-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#a5ddbce9d32b4f8043b641584599fe7e5" title="Retrieve the unqualified variant of the given type, removing as little sugar as possible.">getUnqualifiedType</a>();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> RV = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab55962fe5983453b24c64f76125c760c">EmitAnyExpr</a>(SubExpr);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(RV, ArgQT);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> result = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>                                               BoxingMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>(), Sel, Receiver, <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>                                               ClassDecl, BoxingMethod);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(result.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>(), </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>                                <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()));</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a871e05ff911376c4b10b082c5b88a36c">   90</a></span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a871e05ff911376c4b10b082c5b88a36c">CodeGenFunction::EmitObjCCollectionLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MethodWithObjects) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</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> = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>();</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *DLE = 0;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *ALE = dyn_cast<<a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a>>(E);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="keywordflow">if</span> (!ALE)</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     DLE = cast<ObjCDictionaryLiteral>(E);</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="comment">// Compute the type of the array we're initializing.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   uint64_t NumElements = </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     ALE ? ALE-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a3f7ac85eb0aca575940ae1551c6f2d0f" title="getNumElements - Return number of elements of objective-c array literal.">getNumElements</a>() : DLE-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#aef9e73035eb6a8fdf38fd81809eeb514">getNumElements</a>();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   llvm::APInt APNumElements(Context.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(Context.<a class="code" href="classclang_1_1ASTContext.html#ae3093bf57c46337c9a3f2f42ad8764ee" title="Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.">getSizeType</a>()),</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>                             NumElements);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ElementType = Context.<a class="code" href="classclang_1_1ASTContext.html#a46cf0bb1b4e31396963afe4f98956273" title="Represents the Objective-CC id type.">getObjCIdType</a>().<a class="code" href="classclang_1_1QualType.html#af67a97892c8d03335815654b4b1b27db">withConst</a>();</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ElementArrayType </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     = Context.<a class="code" href="classclang_1_1ASTContext.html#a1dfd9aba04afad486b0dbbfc17de130b" title="Return the unique reference to the type for a constant array of the specified element type...">getConstantArrayType</a>(ElementType, APNumElements, </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>                                    <a class="code" href="classclang_1_1ArrayType.html#a044cc135a180b91387c89659ab7cabb4a4c2f47d08e59b0457e60184462599c17">ArrayType::Normal</a>, <span class="comment">/*IndexTypeQuals=*/</span>0);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="comment">// Allocate the temporary array(s).</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Objects = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(ElementArrayType, <span class="stringliteral">"objects"</span>);  </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Keys = 0;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <span class="keywordflow">if</span> (DLE)</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     Keys = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(ElementArrayType, <span class="stringliteral">"keys"</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="comment">// In ARC, we may need to do extra work to keep all the keys and</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="comment">// values alive until after the call.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<llvm::Value *, 16></a> NeededObjects;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordtype">bool</span> TrackNeededObjects =</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a054eb00391038519d37236032f1ebfe5">getCodeGenOpts</a>().OptimizationLevel != 0);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <span class="comment">// Perform the actual initialialization of the array(s).</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   <span class="keywordflow">for</span> (uint64_t i = 0; i < NumElements; i++) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     <span class="keywordflow">if</span> (ALE) {</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>       <span class="comment">// Emit the element and store it to the appropriate array slot.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Rhs = ALE-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#ad597d76758a8cfea7d67918b3a0d8b16" title="getExpr - Return the Expr at the specified index.">getElement</a>(i);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV = <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a722d1083ced328e61d7028086ffe91a3">LValue::MakeAddr</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(Objects, i),</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>                                    ElementType,</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>                                    Context.<a class="code" href="classclang_1_1ASTContext.html#a78053c06e4477f81b295cac200144fc4" title="Return the ABI-specified alignment of a (complete) type T, in characters.">getTypeAlignInChars</a>(Rhs-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()),</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>                                    Context);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(Rhs);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(value), LV, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>       <span class="keywordflow">if</span> (TrackNeededObjects) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>         NeededObjects.push_back(value);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>       }</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     } <span class="keywordflow">else</span> {      </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>       <span class="comment">// Emit the key and store it to the appropriate array slot.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Key = DLE-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ae2889ca5ab2ab4c6eab1b5892fe790cf">getKeyValueElement</a>(i).<a class="code" href="structclang_1_1ObjCDictionaryElement.html#ae19b4fe17956b4c452068a05c52f99ce" title="The key for the dictionary element.">Key</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> KeyLV = <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a722d1083ced328e61d7028086ffe91a3">LValue::MakeAddr</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(Keys, i),</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>                                       ElementType,</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>                                     Context.<a class="code" href="classclang_1_1ASTContext.html#a78053c06e4477f81b295cac200144fc4" title="Return the ABI-specified alignment of a (complete) type T, in characters.">getTypeAlignInChars</a>(Key-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()),</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>                                       Context);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *keyValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(Key);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(keyValue), KeyLV, <span class="comment">/*isInit=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       <span class="comment">// Emit the value and store it to the appropriate array slot.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = DLE-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ae2889ca5ab2ab4c6eab1b5892fe790cf">getKeyValueElement</a>(i).<a class="code" href="structclang_1_1ObjCDictionaryElement.html#a4b07b000d1fb894e24f9f9fa04f1452d" title="The value of the dictionary element.">Value</a>;  </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> ValueLV = <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a722d1083ced328e61d7028086ffe91a3">LValue::MakeAddr</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(Objects, i), </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>                                         ElementType,</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>                                   Context.<a class="code" href="classclang_1_1ASTContext.html#a78053c06e4477f81b295cac200144fc4" title="Return the ABI-specified alignment of a (complete) type T, in characters.">getTypeAlignInChars</a>(Value-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()),</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>                                         Context);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *valueValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(Value);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(valueValue), ValueLV, <span class="comment">/*isInit=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       <span class="keywordflow">if</span> (TrackNeededObjects) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>         NeededObjects.push_back(keyValue);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>         NeededObjects.push_back(valueValue);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       }</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     }</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   }</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="comment">// Generate the argument list.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>;  </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <a class="code" href="classclang_1_1ObjCMethodDecl.html#a841541ca3ef9960a3474a637e3c8829d">ObjCMethodDecl::param_const_iterator</a> PI = MethodWithObjects-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>();</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *argDecl = *PI++;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgQT = argDecl-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#a5ddbce9d32b4f8043b641584599fe7e5" title="Retrieve the unqualified variant of the given type, removing as little sugar as possible.">getUnqualifiedType</a>();</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(Objects), ArgQT);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="keywordflow">if</span> (DLE) {</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     argDecl = *PI++;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     ArgQT = argDecl-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#a5ddbce9d32b4f8043b641584599fe7e5" title="Retrieve the unqualified variant of the given type, removing as little sugar as possible.">getUnqualifiedType</a>();</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(Keys), ArgQT);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   }</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   argDecl = *PI;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   ArgQT = argDecl-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#a5ddbce9d32b4f8043b641584599fe7e5" title="Retrieve the unqualified variant of the given type, removing as little sugar as possible.">getUnqualifiedType</a>();</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">Count</a> = </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     llvm::ConstantInt::get(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a1bd0fa41a59020e22706ac3f36f7c31f" title="ConvertType - Convert type T into a llvm::Type.">ConvertType</a>(ArgQT), NumElements);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(Count), ArgQT);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="comment">// Generate a reference to the class pointer, which will be the receiver.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel = MethodWithObjects-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>();</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ResultType = E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *InterfacePointerType</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     = ResultType-><a class="code" href="classclang_1_1Type.html#a4e46cfb96824987d41a488a8ef52dfa6">getAsObjCInterfacePointerType</a>();</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     = InterfacePointerType-><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="l00185"></a><span class="lineno">  185</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html" title="Implements runtime-specific code generation functions.">CGObjCRuntime</a> &Runtime = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Receiver = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a39cd307cfd5856cd35c684ff4f388a6e">GetClass</a>(*<span class="keyword">this</span>, Class);</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>   <span class="comment">// Generate the message send.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> result</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>                                   MethodWithObjects-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>(),</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>                                   Sel,</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>                                   Receiver, <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, Class,</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>                                   MethodWithObjects);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   <span class="comment">// The above message send needs these objects, but in ARC they are</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>   <span class="comment">// passed in a buffer that is essentially __unsafe_unretained.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   <span class="comment">// Therefore we must prevent the optimizer from releasing them until</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   <span class="comment">// after the call.</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <span class="keywordflow">if</span> (TrackNeededObjects) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa59fc1074cb261290bcca01d6aa425c9">EmitARCIntrinsicUse</a>(NeededObjects);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   }</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(result.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>(), </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>                                <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</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> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ef822f10ec39b7bf5f20f07995d400f">  208</a></span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ef822f10ec39b7bf5f20f07995d400f">CodeGenFunction::EmitObjCArrayLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *E) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a871e05ff911376c4b10b082c5b88a36c">EmitObjCCollectionLiteral</a>(E, E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a5a55c28af826dc9c4f32adb34a4b7704">getArrayWithObjectsMethod</a>());</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> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a17fc9ab628066b94018efc79b87c0b6b">  212</a></span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a17fc9ab628066b94018efc79b87c0b6b">CodeGenFunction::EmitObjCDictionaryLiteral</a>(</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *E) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a871e05ff911376c4b10b082c5b88a36c">EmitObjCCollectionLiteral</a>(E, E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ad5d4342653f1e833f9a95cf8e0a543f7">getDictWithObjectsMethod</a>());</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> }</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment"></span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">/// Emit a selector.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0fcf98c5422fa75f699b6fd6fed64155">  218</a></span> <span class="comment"></span><a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0fcf98c5422fa75f699b6fd6fed64155" title="Emit a selector.">CodeGenFunction::EmitObjCSelectorExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCSelectorExpr.html" title="ObjCSelectorExpr used for @selector in Objective-C.">ObjCSelectorExpr</a> *E) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="comment">// Untyped selector.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <span class="comment">// Note that this implementation allows for non-constant strings to be passed</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="comment">// as arguments to @selector().  Currently, the only thing preventing this</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   <span class="comment">// behaviour is the type checking in the front end.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a221633f2ae695a5fe9ab259baad8630d">GetSelector</a>(*<span class="keyword">this</span>, E-><a class="code" href="classclang_1_1ObjCSelectorExpr.html#ad46ef0145cfc29ba528203e2da6cdccc">getSelector</a>());</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> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a22a433ca58db496f71158f5453b6154d">  226</a></span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a22a433ca58db496f71158f5453b6154d">CodeGenFunction::EmitObjCProtocolExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolExpr.html">ObjCProtocolExpr</a> *E) {</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   <span class="comment">// FIXME: This should pass the Decl not the name.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a0b39a85a2b54714ff724171c1321fe41">GenerateProtocolRef</a>(*<span class="keyword">this</span>, E-><a class="code" href="classclang_1_1ObjCProtocolExpr.html#ab3f03e1df66e7c88a741e069d5f89fd9">getProtocol</a>());</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment"></span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">/// \brief Adjust the type of the result of an Objective-C message send </span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">/// expression when the method has a related result type.</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a4b3a34cf547b2ee840e66727824fac0f">  233</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="CGObjC_8cpp.html#a4b3a34cf547b2ee840e66727824fac0f" title="Adjust the type of the result of an Objective-C message send expression when the method has a related...">AdjustRelatedResultType</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>                                       <a class="code" href="classclang_1_1QualType.html">QualType</a> ExpT,</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Method,</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>                                       <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Result) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   <span class="keywordflow">if</span> (!Method)</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keywordflow">if</span> (!Method-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af39c2be03915c55301f0d4961e496c2a" title="Determine whether this method has a result type that is related to the message receiver's type...">hasRelatedResultType</a>() ||</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a889b9d309fdc236f1eab037484f10f8a" title="Determine whether the given types T1 and T2 are equivalent.">hasSameType</a>(ExpT, Method-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>()) ||</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>       !Result.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#aeb42ff4f93c5721cf244b300ba864e3f">isScalar</a>())</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   <span class="comment">// We have applied a related result type. Cast the rvalue appropriately.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(Result.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>(),</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>                                                CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(ExpT)));</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> }</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment"></span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">/// Decide whether to extend the lifetime of the receiver of a</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">/// returns-inner-pointer message.</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a77d1234b10fe048805d89e0b1e77d299">  253</a></span> <a class="code" href="CGObjC_8cpp.html#a77d1234b10fe048805d89e0b1e77d299">shouldExtendReceiverForInnerPointerMessage</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *message) {</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>   <span class="keywordflow">switch</span> (message-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7020f79f1cd86ca26de4595bc3cac99c" title="Determine the kind of receiver that this message is being sent to.">getReceiverKind</a>()) {</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   <span class="comment">// For a normal instance message, we should extend unless the</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <span class="comment">// receiver is loaded from a variable with precise lifetime.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3a4756d0e9fdac36e78b8e9204de1024ed" title="The receiver is an object instance.">ObjCMessageExpr::Instance</a>: {</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *receiver = message-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>();</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *ice = dyn_cast<<a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a>>(receiver);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     <span class="keywordflow">if</span> (!ice || ice-><a class="code" href="classclang_1_1CastExpr.html#a9579ef9370fffd8c5e4bee485eac9265">getCastKind</a>() != <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca3b60e4a2d76963a5a2db0e0b720d8ce4">CK_LValueToRValue</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     receiver = ice-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>()-><a class="code" href="classclang_1_1Expr.html#a6128786ad6c6ad61b66ad4ddf09b1bd8">IgnoreParens</a>();</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>     <span class="comment">// Only __strong variables.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>     <span class="keywordflow">if</span> (receiver-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">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#a1280e3f4075ff54f856987cf002ba300a056719970802d94ba3740489f709a96e">Qualifiers::OCL_Strong</a>)</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <span class="comment">// All ivars and fields have precise lifetime.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>     <span class="keywordflow">if</span> (isa<MemberExpr>(receiver) || isa<ObjCIvarRefExpr>(receiver))</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>     <span class="comment">// Otherwise, check for variables.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     <span class="keyword">const</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> *declRef = dyn_cast<<a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a>>(ice-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>());</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>     <span class="keywordflow">if</span> (!declRef) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *var = dyn_cast<<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>>(declRef-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>());</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>     <span class="keywordflow">if</span> (!var) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     <span class="comment">// All variables have precise lifetime except local variables with</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     <span class="comment">// automatic storage duration that aren't specially marked.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     <span class="keywordflow">return</span> (var-><a class="code" href="classclang_1_1VarDecl.html#a86bb48bd6ced47b79a59af7df7108184">hasLocalStorage</a>() &&</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>             !var-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ObjCPreciseLifetimeAttr.html">ObjCPreciseLifetimeAttr</a>>());</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   }</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3af0ac31ca6897a72531f404e6356c0951" title="The receiver is a class.">ObjCMessageExpr::Class</a>:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3adc904b05090355dbf60d3e1eff934a54" title="The receiver is a superclass.">ObjCMessageExpr::SuperClass</a>:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     <span class="comment">// It's never necessary for class objects.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3a04e089df3503a496f2573c1b3f238812" title="The receiver is the instance of the superclass object.">ObjCMessageExpr::SuperInstance</a>:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>     <span class="comment">// We generally assume that 'self' lives throughout a method call.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>     <span class="keywordflow">return</span> <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> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   llvm_unreachable(<span class="stringliteral">"invalid receiver kind"</span>);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> }</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a08d7699a25157488e38e0117a78a6f5b">  297</a></span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a08d7699a25157488e38e0117a78a6f5b">CodeGenFunction::EmitObjCMessageExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *E,</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>                                             <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> Return) {</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="comment">// Only the lookup mechanism and first two arguments of the method</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>   <span class="comment">// implementation vary between runtimes.  We can get the receiver and</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>   <span class="comment">// arguments in generic code.</span></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>   <span class="keywordtype">bool</span> isDelegateInit = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#aecf5ea3916381e0737fc3ebab28cf2b4">isDelegateInitCall</a>();</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *method = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a18c98ce48ed8a78cb0290d74feab687a">getMethodDecl</a>();</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   <span class="comment">// We don't retain the receiver in delegate init calls, and this is</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   <span class="comment">// safe because the receiver value is always loaded from 'self',</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   <span class="comment">// which we zero out.  We don't want to Block_copy block receivers,</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>   <span class="comment">// though.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>   <span class="keywordtype">bool</span> retainSelf =</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     (!isDelegateInit &&</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>      <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>      method &&</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>      method-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1NSConsumesSelfAttr.html">NSConsumesSelfAttr</a>>());</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>   <a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html" title="Implements runtime-specific code generation functions.">CGObjCRuntime</a> &Runtime = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>();</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   <span class="keywordtype">bool</span> isSuperMessage = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="keywordtype">bool</span> isClassMessage = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>   <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *OID = 0;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>   <span class="comment">// Find the receiver</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ReceiverType;</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Receiver = 0;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   <span class="keywordflow">switch</span> (E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7020f79f1cd86ca26de4595bc3cac99c" title="Determine the kind of receiver that this message is being sent to.">getReceiverKind</a>()) {</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3a4756d0e9fdac36e78b8e9204de1024ed" title="The receiver is an object instance.">ObjCMessageExpr::Instance</a>:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     ReceiverType = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>()-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <span class="keywordflow">if</span> (retainSelf) {</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>       <a class="code" href="CGObjC_8cpp.html#a4e6d1446c7f7321cd20ad1dee9829626">TryEmitResult</a> ter = <a class="code" href="CGObjC_8cpp.html#a6016ebbcaed5013f4729ecbf77454059">tryEmitARCRetainScalarExpr</a>(*<span class="keyword">this</span>,</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>                                                    E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>());</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>       Receiver = ter.getPointer();</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>       <span class="keywordflow">if</span> (ter.getInt()) retainSelf = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>       Receiver = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>());</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     <span class="keywordflow">break</span>;</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">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3af0ac31ca6897a72531f404e6356c0951" title="The receiver is a class.">ObjCMessageExpr::Class</a>: {</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     ReceiverType = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#aada0b0ab2bf852f5e78be1decd748ae6" title="Returns the type of a class message send, or NULL if the message is not a class message.">getClassReceiver</a>();</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ObjTy = ReceiverType-><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="l00339"></a><span class="lineno">  339</span>     assert(ObjTy && <span class="stringliteral">"Invalid Objective-C class message send"</span>);</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     OID = ObjTy-><a class="code" href="classclang_1_1ObjCObjectType.html#a768f52da9b3b79e70b48391b38388e40">getInterface</a>();</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     assert(OID && <span class="stringliteral">"Invalid Objective-C class message send"</span>);</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     Receiver = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a39cd307cfd5856cd35c684ff4f388a6e">GetClass</a>(*<span class="keyword">this</span>, OID);</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>     isClassMessage = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>     <span class="keywordflow">break</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>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3a04e089df3503a496f2573c1b3f238812" title="The receiver is the instance of the superclass object.">ObjCMessageExpr::SuperInstance</a>:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     ReceiverType = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a9a96db22972ed90304c8599838d5dc6c" title="Retrieve the type referred to by 'super'.">getSuperType</a>();</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>     Receiver = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>();</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     isSuperMessage = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3adc904b05090355dbf60d3e1eff934a54" title="The receiver is a superclass.">ObjCMessageExpr::SuperClass</a>:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     ReceiverType = E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a9a96db22972ed90304c8599838d5dc6c" title="Retrieve the type referred to by 'super'.">getSuperType</a>();</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     Receiver = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>();</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     isSuperMessage = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>     isClassMessage = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>   }</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>   <span class="keywordflow">if</span> (retainSelf)</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     Receiver = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab8f93d18f0518fc32858adb46f0ac861">EmitARCRetainNonBlock</a>(Receiver);</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   <span class="comment">// In ARC, we sometimes want to "extend the lifetime"</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>   <span class="comment">// (i.e. retain+autorelease) of receivers of returns-inner-pointer</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>   <span class="comment">// messages.</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount && method &&</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>       method-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ObjCReturnsInnerPointerAttr.html">ObjCReturnsInnerPointerAttr</a>>() &&</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>       <a class="code" href="CGObjC_8cpp.html#a77d1234b10fe048805d89e0b1e77d299">shouldExtendReceiverForInnerPointerMessage</a>(E))</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     Receiver = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a403370a4339d7bb5aff0701ecf096de0">EmitARCRetainAutorelease</a>(ReceiverType, Receiver);</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>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ResultType =</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>     method ? method-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>() : E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</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>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   EmitCallArgs(Args, method, E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#abbdceb77e6a38fa4aea4f80c4a97366b">arg_begin</a>(), E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#af843ba7d22193a8ff61570b13860aa07">arg_end</a>());</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>   <span class="comment">// For delegate init calls in ARC, do an unsafe store of null into</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <span class="comment">// self.  This represents the call taking direct ownership of that</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="comment">// value.  We have to do this after emitting the other call</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>   <span class="comment">// arguments because they might also reference self, but we don't</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="comment">// have to worry about any of them modifying self because that would</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   <span class="comment">// be an undefined read and write of an object in unordered</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>   <span class="comment">// expressions.</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>   <span class="keywordflow">if</span> (isDelegateInit) {</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>            <span class="stringliteral">"delegate init calls should only be marked in ARC"</span>);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>     <span class="comment">// Do an unsafe store of null into self.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *selfAddr =</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>       LocalDeclMap[cast<ObjCMethodDecl>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a57b46a6624e733181105ee9c0eb39618" title="CurCodeDecl - This is the inner-most code context, which includes blocks.">CurCodeDecl</a>)->getSelfDecl()];</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>     assert(selfAddr && <span class="stringliteral">"no self entry for a delegate init call?"</span>);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(<a class="code" href="CGObjC_8cpp.html#a463c0cd8f7b9851d73838e56efed2deb">getNullForVariable</a>(selfAddr), selfAddr);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   }</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> result;</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   <span class="keywordflow">if</span> (isSuperMessage) {</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>     <span class="comment">// super is only valid in an Objective-C method</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = cast<ObjCMethodDecl>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">CurFuncDecl</a>);</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <span class="keywordtype">bool</span> isCategoryImpl = isa<ObjCCategoryImplDecl>(OMD-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>     result = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a4d4cda33eaeec331dc9af9b09fa6a7a7">GenerateMessageSendSuper</a>(*<span class="keyword">this</span>, Return, ResultType,</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>                                               E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7c194e4fd002abea38c7b099a205db5d">getSelector</a>(),</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>                                               OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>(),</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>                                               isCategoryImpl,</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>                                               Receiver,</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>                                               isClassMessage,</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>                                               <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>                                               method);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>     result = Runtime.<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(*<span class="keyword">this</span>, Return, ResultType,</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>                                          E-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7c194e4fd002abea38c7b099a205db5d">getSelector</a>(),</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>                                          Receiver, <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, OID,</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>                                          method);</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> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>   <span class="comment">// For delegate init calls in ARC, implicitly store the result of</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   <span class="comment">// the call back into self.  This takes ownership of the value.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   <span class="keywordflow">if</span> (isDelegateInit) {</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *selfAddr =</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>       LocalDeclMap[cast<ObjCMethodDecl>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a57b46a6624e733181105ee9c0eb39618" title="CurCodeDecl - This is the inner-most code context, which includes blocks.">CurCodeDecl</a>)->getSelfDecl()];</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *newSelf = result.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>();</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>     <span class="comment">// The delegate return type isn't necessarily a matching type; in</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>     <span class="comment">// fact, it's quite likely to be 'id'.</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>     llvm::Type *selfTy =</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>       cast<llvm::PointerType>(selfAddr->getType())-><a class="code" href="SemaChecking_8cpp.html#a9f6c9a015ec06db5f86672533b582823">getElementType</a>();</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>     newSelf = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(newSelf, selfTy);</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>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(newSelf, selfAddr);</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> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>   <span class="keywordflow">return</span> <a class="code" href="CGObjC_8cpp.html#a4b3a34cf547b2ee840e66727824fac0f" title="Adjust the type of the result of an Objective-C message send expression when the method has a related...">AdjustRelatedResultType</a>(*<span class="keyword">this</span>, E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), method, result);</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> </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="keyword">struct </span>FinishARCDealloc : <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">EHScopeStack::Cleanup</a> {</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, Flags flags) {</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *method = cast<ObjCMethodDecl>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a57b46a6624e733181105ee9c0eb39618" title="CurCodeDecl - This is the inner-most code context, which includes blocks.">CurCodeDecl</a>);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplDecl.html">ObjCImplDecl</a> *impl = cast<ObjCImplDecl>(method-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *iface = impl->getClassInterface();</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>     <span class="keywordflow">if</span> (!iface->getSuperClass()) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>     <span class="keywordtype">bool</span> isCategory = isa<ObjCCategoryImplDecl>(impl);</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>     <span class="comment">// Call [super dealloc] if we have a superclass.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<span class="keyword">self</span> = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>();</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>     <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a4d4cda33eaeec331dc9af9b09fa6a7a7">GenerateMessageSendSuper</a>(CGF, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(),</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>                                                       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#aaa9dd0ebd4ff2e55c572f5718b7af508">VoidTy</a>,</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>                                                       method-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>(),</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>                                                       iface,</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>                                                       isCategory,</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>                                                       <span class="keyword">self</span>,</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>                                                       <span class="comment">/*is class msg*/</span> <span class="keyword">false</span>,</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>                                                       args,</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>                                                       method);</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> };</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> <span class="comment"></span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">/// StartObjCMethod - Begin emission of an ObjCMethod. This generates</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">/// the LLVM function and sets the other context used by</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">/// CodeGenFunction.</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">  467</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">CodeGenFunction::StartObjCMethod</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD,</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *CD,</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>                                       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> StartLoc) {</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>   <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> args;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="comment">// Check if we should generate debug info for this method.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   <span class="keywordflow">if</span> (OMD-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1NoDebugAttr.html">NoDebugAttr</a>>())</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     DebugInfo = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; <span class="comment">// disable debug info indefinitely for this function</span></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>   llvm::Function *Fn = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a63ae192ce38a046152ed9ad9e973025b">GenerateMethod</a>(OMD, CD);</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>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FI = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#aa0a3712dac69644328d7d9ca209c18ac">arrangeObjCMethodDeclaration</a>(OMD);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a8a3a3e46f0e73246119f50dca6578d0d">SetInternalFunctionAttributes</a>(OMD, Fn, FI);</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>   args.push_back(OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aca5d21d1409956e5d6ba77b0ce4beb0d">getSelfDecl</a>());</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>   args.push_back(OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ab5c716be2156d59824da88f40414988a">getCmdDecl</a>());</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html#a841541ca3ef9960a3474a637e3c8829d">ObjCMethodDecl::param_const_iterator</a> PI = OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>(),</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>          E = OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a41c8a73187b3feac6defb5c1e7987b36">param_end</a>(); PI != E; ++PI)</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     args.push_back(*PI);</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>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a07a029445bbdb49eea32bef47594ba93" title="CurGD - The GlobalDecl for the current function being compiled.">CurGD</a> = OMD;</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>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a923f7d7b4fbe87ade9f82f39ebf804a9">StartFunction</a>(OMD, OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>(), Fn, FI, args, StartLoc);</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="comment">// In ARC, certain methods get an extra cleanup.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>       OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a437ea0ebec5ba72fcf0084dd01654d4c">isInstanceMethod</a>() &&</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#a27ff9883d243e82c10340d6146e49a7a">isUnarySelector</a>()) {</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *ident = </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>       OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#a79b49f4b847c9fea73947aad1fc1ccf8" title="Retrieve the identifier at a given position in the selector.">getIdentifierInfoForSlot</a>(0);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     <span class="keywordflow">if</span> (ident-><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">"dealloc"</span>))</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<FinishARCDealloc>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2accba30944ea68f763f67e3d31baa0a">getARCCleanupKind</a>());</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> }</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="keyword">static</span> llvm::Value *<a class="code" href="CGObjC_8cpp.html#ab8a93cb33b4617d173e3be007229b11a">emitARCRetainLoadOfScalar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>                                               <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <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="l00504"></a><span class="lineno">  504</span> <span class="comment"></span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">/// Generate an Objective-C method.  An Objective-C method is a C function with</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">/// its pointer, name, and types registered in the class struture.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e3e18864e093d98be0599cea582b049">  507</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e3e18864e093d98be0599cea582b049">CodeGenFunction::GenerateObjCMethod</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">StartObjCMethod</a>(OMD, OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>(), OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae05fc39cf093817b3b2ce044686703fb">getLocStart</a>());</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>());</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adefc925f9c3921cc89f39663e2b2379e">FinishFunction</a>(OMD-><a class="code" href="classclang_1_1Decl.html#ab82f834598084b84b6fd3396698973b6">getBodyRBrace</a>());</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> }</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment"></span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">/// emitStructGetterCall - Call the runtime function to load a property</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">/// into the return value slot.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#ac824bab553f4c3723bdd61b9bab2fea3">  515</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#ac824bab553f4c3723bdd61b9bab2fea3">emitStructGetterCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar, </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>                                  <span class="keywordtype">bool</span> isAtomic, <span class="keywordtype">bool</span> hasStrong) {</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</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> = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>();</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>   llvm::Value *src =</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(),</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>                           ivar, 0).getAddress();</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> </div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   <span class="comment">// objc_copyStruct (ReturnValue, &structIvar, </span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   <span class="comment">//                  sizeof (Type of Ivar), isAtomic, false);</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</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>   llvm::Value *dest = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(dest), Context.<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   src = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(src, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(src), Context.<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</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="classclang_1_1CharUnits.html">CharUnits</a> size = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ae8d8371f22bd850bced9b4b9ca848c4e" title="Return the size of the specified (complete) type T, in characters.">getTypeSizeInChars</a>(ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#afc1a42dd19d9f4d3fdb1e9d15cf26810" title="getSize - Emit the given number of characters as a value of type size_t.">getSize</a>(size)), Context.<a class="code" href="classclang_1_1ASTContext.html#ae3093bf57c46337c9a3f2f42ad8764ee" title="Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.">getSizeType</a>());</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getInt1(isAtomic)), Context.<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getInt1(hasStrong)), Context.<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</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>   llvm::Value *fn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a1d7d21b5b6b69d270a26f9c8d35a36a2">GetGetStructFunction</a>();</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(Context.<a class="code" href="classclang_1_1ASTContext.html#aaa9dd0ebd4ff2e55c572f5718b7af508">VoidTy</a>, args,</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>                                                       <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>                                                       <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>                fn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> }</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment"></span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">/// Determine whether the given architecture supports unaligned atomic</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">/// accesses.  They don't have to be fast, just faster than a function</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">/// call and a mutex.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a4ecbadd888f29382d2f0e5ada692604c">  548</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CGObjC_8cpp.html#a4ecbadd888f29382d2f0e5ada692604c">hasUnalignedAtomics</a>(llvm::Triple::ArchType arch) {</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <span class="comment">// FIXME: Allow unaligned atomic load/store on x86.  (It is not</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   <span class="comment">// currently supported by the backend.)</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> }</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment"></span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">/// Return the maximum size that permits atomic accesses for the given</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">/// architecture.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a93bc30ea9118ba70207243bfefdcfbfb">  556</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> <a class="code" href="CGObjC_8cpp.html#a93bc30ea9118ba70207243bfefdcfbfb">getMaxAtomicAccessSize</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>                                         llvm::Triple::ArchType arch) {</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>   <span class="comment">// ARM has 8-byte atomic accesses, but it's not clear whether we</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>   <span class="comment">// want to rely on them here.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> </div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>   <span class="comment">// In the default case, just assume that any size up to a pointer is</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="comment">// fine given adequate alignment.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CharUnits.html#adf6d3a79993b58285a0626b61c2c6c82" title="fromQuantity - Construct a CharUnits quantity from a raw integer type.">CharUnits::fromQuantity</a>(CGM.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a6e568b394f88b8075e181e675695343a">PointerSizeInBytes</a>);</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> </div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   <span class="keyword">class </span>PropertyImplStrategy {</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     <span class="keyword">enum</span> StrategyKind {<span class="comment"></span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">      /// The 'native' strategy is to use the architecture's provided</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">      /// reads and writes.</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment"></span>      Native,</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment"></span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">      /// Use objc_setProperty and objc_getProperty.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment"></span>      GetSetProperty,</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment"></span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">      /// Use objc_setProperty for the setter, but use expression</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">      /// evaluation for the getter.</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment"></span>      SetPropertyAndExpressionGet,</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment"></span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">      /// Use objc_copyStruct.</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment"></span>      CopyStruct,</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment"></span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">      /// The 'expression' strategy is to emit normal assignment or</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">      /// lvalue-to-rvalue expressions.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment"></span>      Expression</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     };</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     StrategyKind <a class="code" href="DeclBase_8cpp.html#a37d13911f1772d0ed90b6b2e89cf3c60">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> StrategyKind(<a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>); }</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>     <span class="keywordtype">bool</span> hasStrongMember()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> HasStrong; }</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>     <span class="keywordtype">bool</span> isAtomic()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IsAtomic; }</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>     <span class="keywordtype">bool</span> isCopy()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IsCopy; }</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> getIvarSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IvarSize; }</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> getIvarAlignment()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IvarAlignment; }</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>     PropertyImplStrategy(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl);</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>     <span class="keywordtype">unsigned</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> : 8;</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     <span class="keywordtype">unsigned</span> IsAtomic : 1;</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <span class="keywordtype">unsigned</span> IsCopy : 1;</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>     <span class="keywordtype">unsigned</span> HasStrong : 1;</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> IvarSize;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> IvarAlignment;</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   };</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> }</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment"></span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">/// Pick an implementation strategy for the given property synthesis.</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment"></span>PropertyImplStrategy::PropertyImplStrategy(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &CGM,</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl) {</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *prop = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>();</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>   <a class="code" href="classclang_1_1ObjCPropertyDecl.html#aa5b515a901763bbf17d4d00dd609e482">ObjCPropertyDecl::SetterKind</a> setterKind = prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ae4c5b3430ef3afe62373b7077cffd0b6">getSetterKind</a>();</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>   IsCopy = (setterKind == <a class="code" href="classclang_1_1ObjCPropertyDecl.html#aa5b515a901763bbf17d4d00dd609e482a5fa703a0655bf90aa022ae3e4ee784ec">ObjCPropertyDecl::Copy</a>);</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   IsAtomic = prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a97ea0ec9af208729d312227dc4b2d759" title="isAtomic - Return true if the property is atomic.">isAtomic</a>();</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   HasStrong = <span class="keyword">false</span>; <span class="comment">// doesn't matter here.</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>   <span class="comment">// Evaluate the ivar's size and alignment.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a4997f96072c557376eeb6c52423ff6fc">getPropertyIvarDecl</a>();</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ivarType = ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>   llvm::tie(IvarSize, IvarAlignment)</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>     = CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#abd8adaff3fe53124096c820470099ed1">getTypeInfoInChars</a>(ivarType);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   <span class="comment">// If we have a copy property, we always have to use getProperty/setProperty.</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>   <span class="comment">// TODO: we could actually use setProperty and an expression for non-atomics.</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>   <span class="keywordflow">if</span> (IsCopy) {</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = GetSetProperty;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>   }</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> </div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   <span class="comment">// Handle retain.</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>   <span class="keywordflow">if</span> (setterKind == <a class="code" href="classclang_1_1ObjCPropertyDecl.html#aa5b515a901763bbf17d4d00dd609e482a5b41365713861fb58070fb5ac5d59f7a">ObjCPropertyDecl::Retain</a>) {</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>     <span class="comment">// In GC-only, there's nothing special that needs to be done.</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>     <span class="keywordflow">if</span> (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().getGC() == <a class="code" href="classclang_1_1LangOptions.html#a01202ff51e7f9dbf39a447360d0a3a84a14f316080dbd204ff0c18a43a3e46869">LangOptions::GCOnly</a>) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       <span class="comment">// fallthrough</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>     <span class="comment">// In ARC, if the property is non-atomic, use expression emission,</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>     <span class="comment">// which translates to objc_storeStrong.  This isn't required, but</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>     <span class="comment">// it's slightly nicer.</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().ObjCAutoRefCount && !IsAtomic) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>       <span class="comment">// Using standard expression emission for the setter is only</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>       <span class="comment">// acceptable if the ivar is __strong, which won't be true if</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>       <span class="comment">// the property is annotated with __attribute__((NSObject)).</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>       <span class="comment">// TODO: falling all the way back to objc_setProperty here is</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>       <span class="comment">// just laziness, though;  we could still use objc_storeStrong</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>       <span class="comment">// if we hacked it right.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>       <span class="keywordflow">if</span> (ivarType.<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#a1280e3f4075ff54f856987cf002ba300a056719970802d94ba3740489f709a96e">Qualifiers::OCL_Strong</a>)</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>         <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Expression;</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>         <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = SetPropertyAndExpressionGet;</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> </div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     <span class="comment">// Otherwise, we need to at least use setProperty.  However, if</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>     <span class="comment">// the property isn't atomic, we can use normal expression</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     <span class="comment">// emission for the getter.</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!IsAtomic) {</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>       <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = SetPropertyAndExpressionGet;</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> </div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>     <span class="comment">// Otherwise, we have to use both setProperty and getProperty.</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>       <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = GetSetProperty;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     }</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>   }</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> </div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>   <span class="comment">// If we're not atomic, just use expression accesses.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>   <span class="keywordflow">if</span> (!IsAtomic) {</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Expression;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>   }</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> </div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>   <span class="comment">// Properties on bitfield ivars need to be emitted using expression</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>   <span class="comment">// accesses even if they're nominally atomic.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   <span class="keywordflow">if</span> (ivar-><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="l00680"></a><span class="lineno">  680</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Expression;</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   }</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>   <span class="comment">// GC-qualified or ARC-qualified ivars need to be emitted as</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>   <span class="comment">// expressions.  This actually works out to being atomic anyway,</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   <span class="comment">// except for ARC __strong, but that should trigger the above code.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>   <span class="keywordflow">if</span> (ivarType.<a class="code" href="classclang_1_1QualType.html#ab6f9c7634216ec0e51ea9b6bfa545699">hasNonTrivialObjCLifetime</a>() ||</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>       (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().getGC() &&</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>        CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a96173c1ad2f23e1d8e10b91336d8b2c6" title="Return one of the GCNone, Weak or Strong Objective-C garbage collection attributes.">getObjCGCAttrKind</a>(ivarType))) {</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Expression;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   }</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>   <span class="comment">// Compute whether the ivar has strong members.</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   <span class="keywordflow">if</span> (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().getGC())</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *recordType = ivarType-><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="l00697"></a><span class="lineno">  697</span>       HasStrong = recordType->getDecl()->hasObjectMember();</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   <span class="comment">// We can never access structs with object members with a native</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   <span class="comment">// access, because we need to use write barriers.  This is what</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   <span class="comment">// objc_copyStruct is for.</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordflow">if</span> (HasStrong) {</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = CopyStruct;</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   }</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>   <span class="comment">// Otherwise, this is target-dependent and based on the size and</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   <span class="comment">// alignment of the ivar.</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span> </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   <span class="comment">// If the size of the ivar is not a power of two, give up.  We don't</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>   <span class="comment">// want to get into the business of doing compare-and-swaps.</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>   <span class="keywordflow">if</span> (!IvarSize.isPowerOfTwo()) {</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = CopyStruct;</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>   }</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   llvm::Triple::ArchType arch =</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a0256b70c5f3ad3812e767f745196fa3f">getTarget</a>().<a class="code" href="classclang_1_1TargetInfo.html#a20f1dc9686f1a537a03975c7603774e7" title="Returns the target triple of the primary target.">getTriple</a>().getArch();</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>   <span class="comment">// Most architectures require memory to fit within a single cache</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>   <span class="comment">// line, so the alignment has to be at least the size of the access.</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>   <span class="comment">// Otherwise we have to grab a lock.</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <span class="keywordflow">if</span> (IvarAlignment < IvarSize && !<a class="code" href="CGObjC_8cpp.html#a4ecbadd888f29382d2f0e5ada692604c">hasUnalignedAtomics</a>(arch)) {</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = CopyStruct;</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>   }</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   <span class="comment">// If the ivar's size exceeds the architecture's maximum atomic</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>   <span class="comment">// access size, we have to use CopyStruct.</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>   <span class="keywordflow">if</span> (IvarSize > <a class="code" href="CGObjC_8cpp.html#a93bc30ea9118ba70207243bfefdcfbfb">getMaxAtomicAccessSize</a>(CGM, arch)) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = CopyStruct;</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   }</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> </div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>   <span class="comment">// Otherwise, we can use native loads and stores.</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Native;</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> }</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment"></span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">/// \brief Generate an Objective-C property getter function.</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">/// The given Decl must be an ObjCImplementationDecl. \@synthesize</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">/// is illegal within a category.</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a61601341e3d45b841fdecbe48517bca8">  743</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a61601341e3d45b841fdecbe48517bca8" title="GenerateObjCGetter - Synthesize an Objective-C property getter function.">CodeGenFunction::GenerateObjCGetter</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>                                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID) {</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>   llvm::Constant *AtomicHelperFn = </div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac55c2c0a2d817ee537538746501571af">GenerateObjCAtomicGetterCopyHelperFunction</a>(PID);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = PID-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>();</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = PD-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ac7f00c5e70f112c0c7863f93c1872545">getGetterMethodDecl</a>();</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   assert(OMD && <span class="stringliteral">"Invalid call to generate getter (empty method)"</span>);</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">StartObjCMethod</a>(OMD, IMP-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae05fc39cf093817b3b2ce044686703fb">getLocStart</a>());</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba40389a4444132f15f7c4f17576684b">generateObjCGetterBody</a>(IMP, PID, OMD, AtomicHelperFn);</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>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adefc925f9c3921cc89f39663e2b2379e">FinishFunction</a>();</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> }</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> </div>
+<div class="line"><a name="l00757"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a0ec7315b1e8365459dc9dd1b41e294d0">  757</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CGObjC_8cpp.html#a0ec7315b1e8365459dc9dd1b41e294d0">hasTrivialGetExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl) {</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *getter = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#aa913ea1dcfdd9c8d23ee69f7cb6dc8ee">getGetterCXXConstructor</a>();</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>   <span class="keywordflow">if</span> (!getter) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> </div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   <span class="comment">// Sema only makes only of these when the ivar has a C++ class type,</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   <span class="comment">// so the form is pretty constrained.</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   <span class="comment">// If the property has a reference type, we might just be binding a</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>   <span class="comment">// reference, in which case the result will be a gl-value.  We should</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>   <span class="comment">// treat this as a non-trivial operation.</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>   <span class="keywordflow">if</span> (getter-><a class="code" href="classclang_1_1Expr.html#ae5788e69a4c1d2d1b1e5ddaa4d525e22">isGLValue</a>())</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> </div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>   <span class="comment">// If we selected a trivial copy-constructor, we're okay.</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *construct = dyn_cast<CXXConstructExpr>(getter))</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>     <span class="keywordflow">return</span> (construct->getConstructor()->isTrivial());</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">// The constructor might require cleanups (in which case it's never</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="comment">// trivial).</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   assert(isa<ExprWithCleanups>(getter));</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> }</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment"></span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">/// emitCPPObjectAtomicGetterCall - Call the runtime function to </span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">/// copy the ivar into the resturn slot.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a9b64daea50c2c6ba13b00136f82bb662">  782</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#a9b64daea50c2c6ba13b00136f82bb662">emitCPPObjectAtomicGetterCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, </div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>                                           llvm::Value *returnAddr,</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>                                           <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar,</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>                                           llvm::Constant *AtomicHelperFn) {</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>   <span class="comment">// objc_copyCppObjectAtomic (&returnSlot, &CppObjectIvar,</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>   <span class="comment">//                           AtomicHelperFn);</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   </div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   <span class="comment">// The 1st argument is the return Slot.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(returnAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>   </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>   <span class="comment">// The 2nd argument is the address of the ivar.</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>   llvm::Value *ivarAddr = </div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>                         CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, 0).getAddress();</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   ivarAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(ivarAddr, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   </div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>   <span class="comment">// Third argument is the helper function.</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(AtomicHelperFn), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   </div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   llvm::Value *copyCppAtomicObjectFn = </div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#aa2dc3538b71ffa6da7ba80f213f73127">GetCppAtomicObjectGetFunction</a>();</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#aaa9dd0ebd4ff2e55c572f5718b7af508">VoidTy</a>,</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>                                                       args,</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>                                                       <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>                                                       <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>                copyCppAtomicObjectFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> }</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> </div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba40389a4444132f15f7c4f17576684b">  813</a></span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba40389a4444132f15f7c4f17576684b">CodeGenFunction::generateObjCGetterBody</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *classImpl,</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl,</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *GetterMethodDecl,</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>                                         llvm::Constant *AtomicHelperFn) {</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>   <span class="comment">// If there's a non-trivial 'get' expression, we just have to emit that.</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>   <span class="keywordflow">if</span> (!<a class="code" href="CGObjC_8cpp.html#a0ec7315b1e8365459dc9dd1b41e294d0">hasTrivialGetExpr</a>(propImpl)) {</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>     <span class="keywordflow">if</span> (!AtomicHelperFn) {</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>       <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> ret(<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>(), propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#aa913ea1dcfdd9c8d23ee69f7cb6dc8ee">getGetterCXXConstructor</a>(),</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>                      <span class="comment">/*nrvo*/</span> 0);</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ade76f8f53ab9db73e68a20a4eb66bc04">EmitReturnStmt</a>(ret);</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>     }</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>       <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a4997f96072c557376eeb6c52423ff6fc">getPropertyIvarDecl</a>();</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>       <a class="code" href="CGObjC_8cpp.html#a9b64daea50c2c6ba13b00136f82bb662">emitCPPObjectAtomicGetterCall</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>, </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>                                     ivar, AtomicHelperFn);</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>     }</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>   }</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> </div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *prop = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>();</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> propType = prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#af0e7df097fcd79bcda29939566e96644">getType</a>();</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *getterMethod = prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ac7f00c5e70f112c0c7863f93c1872545">getGetterMethodDecl</a>();</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> </div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>   <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a4997f96072c557376eeb6c52423ff6fc">getPropertyIvarDecl</a>();  </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="comment">// Pick an implementation strategy.</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>   PropertyImplStrategy strategy(CGM, propImpl);</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>   <span class="keywordflow">switch</span> (strategy.getKind()) {</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>   <span class="keywordflow">case</span> PropertyImplStrategy::Native: {</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>     <span class="comment">// We don't need to do anything for a zero-size struct.</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>     <span class="keywordflow">if</span> (strategy.getIvarSize().isZero())</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> </div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>     <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, 0);</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span> </div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>     <span class="comment">// Currently, all atomic accesses have to be through integer</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>     <span class="comment">// types, so there's no point in trying to pick a prettier type.</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>     llvm::Type *bitcastType =</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>       llvm::Type::getIntNTy(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(),</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>                             <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().toBits(strategy.getIvarSize()));</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>     bitcastType = bitcastType->getPointerTo(); <span class="comment">// addrspace 0 okay</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> </div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>     <span class="comment">// Perform an atomic load.  This does not impose ordering constraints.</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>     llvm::Value *ivarAddr = LV.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>();</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>     ivarAddr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(ivarAddr, bitcastType);</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>     llvm::LoadInst *load = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(ivarAddr, <span class="stringliteral">"load"</span>);</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>     load->setAlignment(strategy.getIvarAlignment().getQuantity());</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>     load->setAtomic(llvm::Unordered);</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> </div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>     <span class="comment">// Store that value into the return address.  Doing this with a</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>     <span class="comment">// bitcast is likely to produce some pretty ugly IR, but it's not</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>     <span class="comment">// the *most* terrible thing in the world.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(load, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>, bitcastType));</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> </div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>     <span class="comment">// Make sure we don't do an autorelease.</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed" title="In ARC, whether we should autorelease the return value.">AutoreleaseResult</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   <span class="keywordflow">case</span> PropertyImplStrategy::GetSetProperty: {</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>     llvm::Value *getPropertyFn =</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>       CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#abe26b398a7e1eebfb516b857e44e6400" title="Return the runtime function for getting properties.">GetPropertyGetFunction</a>();</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>     <span class="keywordflow">if</span> (!getPropertyFn) {</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>       CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a376568c3ab5102ebd46232c944128aee">ErrorUnsupported</a>(propImpl, <span class="stringliteral">"Obj-C getter requiring atomic copy"</span>);</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>     }</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> </div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     <span class="comment">// Return (ivar-type) objc_getProperty((id) self, _cmd, offset, true).</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>     <span class="comment">// FIXME: Can't this be simpler? This might even be worse than the</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>     <span class="comment">// corresponding gcc code.</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>     llvm::Value *cmd =</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(LocalDeclMap[getterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ab5c716be2156d59824da88f40414988a">getCmdDecl</a>()], <span class="stringliteral">"cmd"</span>);</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     llvm::Value *<span class="keyword">self</span> = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), <a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>     llvm::Value *ivarOffset =</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac23a0355d2d20770b02f2d92c5872c81">EmitIvarOffset</a>(classImpl-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), ivar);</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span> </div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>     args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<span class="keyword">self</span>), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType());</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     args.add(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(cmd), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCSelType());</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>     args.add(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarOffset), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getPointerDiffType());</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>     args.add(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getInt1(strategy.isAtomic())),</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>              <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>     <span class="comment">// FIXME: We shouldn't need to get the function info here, the</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>     <span class="comment">// runtime already should have computed it to build the function.</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>     <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> RV = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().arrangeFreeFunctionCall(propType, args,</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>                                                        <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>                                                             <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>                          getPropertyFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> </div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>     <span class="comment">// We need to fix the type here. Ivars with copy & retain are</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>     <span class="comment">// always objects so we don't need to worry about complex or</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>     <span class="comment">// aggregates.</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>     RV = <a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(RV.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>(),</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>            <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a1bd0fa41a59020e22706ac3f36f7c31f" title="ConvertType - Convert type T into a llvm::Type.">ConvertType</a>(getterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>())));</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     EmitReturnOfRValue(RV, propType);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> </div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>     <span class="comment">// objc_getProperty does an autorelease, so we should suppress ours.</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed" title="In ARC, whether we should autorelease the return value.">AutoreleaseResult</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span> </div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>   }</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span> </div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>   <span class="keywordflow">case</span> PropertyImplStrategy::CopyStruct:</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>     <a class="code" href="CGObjC_8cpp.html#ac824bab553f4c3723bdd61b9bab2fea3">emitStructGetterCall</a>(*<span class="keyword">this</span>, ivar, strategy.isAtomic(),</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>                          strategy.hasStrongMember());</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> </div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   <span class="keywordflow">case</span> PropertyImplStrategy::Expression:</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   <span class="keywordflow">case</span> PropertyImplStrategy::SetPropertyAndExpressionGet: {</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>     <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, 0);</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> </div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> ivarType = ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>     <span class="keywordflow">switch</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1be3afe566ffd19818efe9f6b07a8ea">getEvaluationKind</a>(ivarType)) {</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9ad0c74fbe072df321c2078f52f052d07c">TEK_Complex</a>: {</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a> pair = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a26d8547dd8e031970116491629669c39" title="EmitLoadOfComplex - Load a complex number from the specified l-value.">EmitLoadOfComplex</a>(LV, <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="l00930"></a><span class="lineno">  930</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa903765558c8982b2d81d97e637adda1" title="EmitStoreOfComplex - Store a complex number into the specified l-value.">EmitStoreOfComplex</a>(pair,</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>                          <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac85064af11c2b350b51e373aa33f3f3e">MakeNaturalAlignAddrLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>, ivarType),</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>                          <span class="comment">/*init*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>     }</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9a6bdd6972cc7f7a6326c359a2a07df29a">TEK_Aggregate</a>:</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>       <span class="comment">// The return value slot is guaranteed to not be aliased, but</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>       <span class="comment">// that's not necessarily the same as "on the stack", so</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>       <span class="comment">// we still potentially need objc_memmove_collectable.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12ee175c3e6e4041476f5d3af692a70a">EmitAggregateCopy</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>, LV.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>(), ivarType);</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9aa4a7b0b5cf5c3854e35ca0c172e93269">TEK_Scalar</a>: {</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>       llvm::Value *value;</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>       <span class="keywordflow">if</span> (propType-><a class="code" href="classclang_1_1Type.html#ab2b860560d2ac12cd365aa09b143d195">isReferenceType</a>()) {</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>         value = LV.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>();</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>         <span class="comment">// We want to load and autoreleaseReturnValue ARC __weak ivars.</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>         <span class="keywordflow">if</span> (LV.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a046d8d562af26daba3ed3b781ba5ff54">getQuals</a>().<a class="code" href="classclang_1_1Qualifiers.html#adc87b34275b3ffb4f05274cc1fe0ecf7">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="l00948"></a><span class="lineno">  948</span>           value = <a class="code" href="CGObjC_8cpp.html#ab8a93cb33b4617d173e3be007229b11a">emitARCRetainLoadOfScalar</a>(*<span class="keyword">this</span>, LV, ivarType);</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> </div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>         <span class="comment">// Otherwise we want to do a simple load, suppressing the</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>         <span class="comment">// final autorelease.</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>         } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>           value = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6ec6fabfbe7aa87203af03a05ab5d157">EmitLoadOfLValue</a>(LV, <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_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>();</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>           <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed" title="In ARC, whether we should autorelease the return value.">AutoreleaseResult</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>         }</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span> </div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>         value = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(value, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(propType));</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>         value = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(value, </div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>                   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(GetterMethodDecl-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>()));</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>       }</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>       </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>       EmitReturnOfRValue(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(value), propType);</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>     }</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>     }</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>     llvm_unreachable(<span class="stringliteral">"bad evaluation kind"</span>);</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   }</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> </div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   }</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>   llvm_unreachable(<span class="stringliteral">"bad @property implementation strategy!"</span>);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">/// emitStructSetterCall - Call the runtime function to store the value</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">/// from the first formal parameter into the given ivar.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#aec004cf7d3d14d6e0df33b4502b529e9">  975</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#aec004cf7d3d14d6e0df33b4502b529e9">emitStructSetterCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD,</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>                                  <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar) {</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>   <span class="comment">// objc_copyStruct (&structIvar, &Arg, </span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>   <span class="comment">//                  sizeof (struct something), true, false);</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> </div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>   <span class="comment">// The first argument is the address of the ivar.</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>   llvm::Value *ivarAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(),</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>                                                 CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, 0)</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>     .getAddress();</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   ivarAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(ivarAddr, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> </div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>   <span class="comment">// The second argument is the address of the parameter variable.</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *argVar = *OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>();</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</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> argRef(argVar, <span class="keyword">false</span>, argVar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#ab6a2e89b5fcb1618aaef3a38563b10e4">getNonReferenceType</a>(), </div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</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="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="l00992"></a><span class="lineno">  992</span>   llvm::Value *argAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(&argRef).<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>();</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   argAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(argAddr, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(argAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span> </div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>   <span class="comment">// The third argument is the sizeof the type.</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   llvm::Value *size =</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#afc1a42dd19d9f4d3fdb1e9d15cf26810" title="getSize - Emit the given number of characters as a value of type size_t.">getSize</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ae8d8371f22bd850bced9b4b9ca848c4e" title="Return the size of the specified (complete) type T, in characters.">getTypeSizeInChars</a>(ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>()));</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(size), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ae3093bf57c46337c9a3f2f42ad8764ee" title="Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.">getSizeType</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>   <span class="comment">// The fourth argument is the 'isAtomic' flag.</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getTrue()), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>   <span class="comment">// The fifth argument is the 'hasStrong' flag.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>   <span class="comment">// FIXME: should this really always be false?</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getFalse()), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> </div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>   llvm::Value *copyStructFn = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#ab1ac01171227a508fb049fb87acc639e">GetSetStructFunction</a>();</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#aaa9dd0ebd4ff2e55c572f5718b7af508">VoidTy</a>,</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>                                                       args,</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>                                                       <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>                                                       <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>                copyStructFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> }</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment"></span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">/// emitCPPObjectAtomicSetterCall - Call the runtime function to store </span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">/// the value from the first formal parameter into the given ivar, using </span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">/// the Cpp API for atomic Cpp objects with non-trivial copy assignment.</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#aeeb3147cb44ef0d3f8213e219eeb6c3d"> 1019</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#aeeb3147cb44ef0d3f8213e219eeb6c3d">emitCPPObjectAtomicSetterCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>                                           <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD,</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>                                           <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar,</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>                                           llvm::Constant *AtomicHelperFn) {</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   <span class="comment">// objc_copyCppObjectAtomic (&CppObjectIvar, &Arg, </span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   <span class="comment">//                           AtomicHelperFn);</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>   </div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>   <span class="comment">// The first argument is the address of the ivar.</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   llvm::Value *ivarAddr = </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), </div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>                           CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, 0).getAddress();</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>   ivarAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(ivarAddr, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>   </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>   <span class="comment">// The second argument is the address of the parameter variable.</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>   <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *argVar = *OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>();</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</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> argRef(argVar, <span class="keyword">false</span>, argVar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#ab6a2e89b5fcb1618aaef3a38563b10e4">getNonReferenceType</a>(), </div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</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="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="l01038"></a><span class="lineno"> 1038</span>   llvm::Value *argAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(&argRef).<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>();</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>   argAddr = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(argAddr, CGF.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ac3ec7e3938996c5354dbee1a103ed4d2">Int8PtrTy</a>);</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(argAddr), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>   </div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>   <span class="comment">// Third argument is the helper function.</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>   args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(AtomicHelperFn), CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>);</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>   llvm::Value *copyCppAtomicObjectFn = </div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a236752ccbcfa81ee63fff1f675da43fe">GetCppAtomicObjectSetFunction</a>();</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#aaa9dd0ebd4ff2e55c572f5718b7af508">VoidTy</a>,</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>                                                       args,</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>                                                       <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>                                                       <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>                copyCppAtomicObjectFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> }</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#af4dabe5840dc9ca0d51eb18a4bf3a263"> 1055</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CGObjC_8cpp.html#af4dabe5840dc9ca0d51eb18a4bf3a263">hasTrivialSetExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID) {</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *setter = PID-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a6715a4348431248163bc821c56e27a38">getSetterCXXAssignment</a>();</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>   <span class="keywordflow">if</span> (!setter) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   <span class="comment">// Sema only makes only of these when the ivar has a C++ class type,</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>   <span class="comment">// so the form is pretty constrained.</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>   <span class="comment">// An operator call is trivial if the function it calls is trivial.</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>   <span class="comment">// This also implies that there's nothing non-trivial going on with</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>   <span class="comment">// the arguments, because operator= can only be trivial if it's a</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>   <span class="comment">// synthesized assignment operator and therefore both parameters are</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>   <span class="comment">// references.</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *call = dyn_cast<CallExpr>(setter)) {</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *callee</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>           = dyn_cast_or_null<FunctionDecl>(call->getCalleeDecl()))</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>       <span class="keywordflow">if</span> (callee->isTrivial())</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>   }</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>   assert(isa<ExprWithCleanups>(setter));</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> }</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> </div>
+<div class="line"><a name="l01079"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#afa6aa60a62966524824e2dcb533fd729"> 1079</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CGObjC_8cpp.html#afa6aa60a62966524824e2dcb533fd729">UseOptimizedSetter</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &CGM) {</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>   <span class="keywordflow">if</span> (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().getGC() != <a class="code" href="classclang_1_1LangOptions.html#a01202ff51e7f9dbf39a447360d0a3a84ab62653320d5d7633c47854b73fe5d93d">LangOptions::NonGC</a>)</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>   <span class="keywordflow">return</span> CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a06937fff556941150e9526e3968fda9b" title="Does this runtime supports optimized setter entrypoints?">hasOptimizedSetter</a>();</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7db283a16fbbb45515d9cf5b92dd9e9a"> 1086</a></span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7db283a16fbbb45515d9cf5b92dd9e9a">CodeGenFunction::generateObjCSetterBody</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *classImpl,</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl,</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>                                         llvm::Constant *AtomicHelperFn) {</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *prop = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>();</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>   <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar = propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a4997f96072c557376eeb6c52423ff6fc">getPropertyIvarDecl</a>();</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *setterMethod = prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a0deedcad9deaf37c5964646a16a6ef36">getSetterMethodDecl</a>();</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>   <span class="comment">// Just use the setter expression if Sema gave us one and it's</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   <span class="comment">// non-trivial.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   <span class="keywordflow">if</span> (!<a class="code" href="CGObjC_8cpp.html#af4dabe5840dc9ca0d51eb18a4bf3a263">hasTrivialSetExpr</a>(propImpl)) {</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>     <span class="keywordflow">if</span> (!AtomicHelperFn)</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>       <span class="comment">// If non-atomic, assignment is called directly.</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(propImpl-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a6715a4348431248163bc821c56e27a38">getSetterCXXAssignment</a>());</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>       <span class="comment">// If atomic, assignment is called via a locking api.</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>       <a class="code" href="CGObjC_8cpp.html#aeeb3147cb44ef0d3f8213e219eeb6c3d">emitCPPObjectAtomicSetterCall</a>(*<span class="keyword">this</span>, setterMethod, ivar,</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>                                     AtomicHelperFn);</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>   }</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   PropertyImplStrategy strategy(CGM, propImpl);</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   <span class="keywordflow">switch</span> (strategy.getKind()) {</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   <span class="keywordflow">case</span> PropertyImplStrategy::Native: {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>     <span class="comment">// We don't need to do anything for a zero-size struct.</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>     <span class="keywordflow">if</span> (strategy.getIvarSize().isZero())</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>     llvm::Value *argAddr = LocalDeclMap[*setterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>()];</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> ivarLValue =</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), ivar, <span class="comment">/*quals*/</span> 0);</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     llvm::Value *ivarAddr = ivarLValue.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>();</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> </div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="comment">// Currently, all atomic accesses have to be through integer</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>     <span class="comment">// types, so there's no point in trying to pick a prettier type.</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>     llvm::Type *bitcastType =</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>       llvm::Type::getIntNTy(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(),</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>                             <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().toBits(strategy.getIvarSize()));</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>     bitcastType = bitcastType->getPointerTo(); <span class="comment">// addrspace 0 okay</span></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>     <span class="comment">// Cast both arguments to the chosen operation type.</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     argAddr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(argAddr, bitcastType);</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>     ivarAddr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(ivarAddr, bitcastType);</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> </div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>     <span class="comment">// This bitcast load is likely to cause some nasty IR.</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>     llvm::Value *load = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(argAddr);</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> </div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>     <span class="comment">// Perform an atomic store.  There are no memory ordering requirements.</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     llvm::StoreInst *store = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(load, ivarAddr);</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     store->setAlignment(strategy.getIvarAlignment().getQuantity());</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>     store->setAtomic(llvm::Unordered);</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   }</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>   <span class="keywordflow">case</span> PropertyImplStrategy::GetSetProperty:</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>   <span class="keywordflow">case</span> PropertyImplStrategy::SetPropertyAndExpressionGet: {</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>   </div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>     llvm::Value *setOptimizedPropertyFn = 0;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>     llvm::Value *setPropertyFn = 0;</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>     <span class="keywordflow">if</span> (<a class="code" href="CGObjC_8cpp.html#afa6aa60a62966524824e2dcb533fd729">UseOptimizedSetter</a>(CGM)) {</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>       <span class="comment">// 10.8 and iOS 6.0 code and GC is off</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>       setOptimizedPropertyFn = </div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>         CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>()</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>            .<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#af111b611ca9e3b809d937a526683a64e" title="Return the runtime function for optimized setting properties.">GetOptimizedPropertySetFunction</a>(strategy.isAtomic(),</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>                                             strategy.isCopy());</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>       <span class="keywordflow">if</span> (!setOptimizedPropertyFn) {</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>         CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a376568c3ab5102ebd46232c944128aee">ErrorUnsupported</a>(propImpl, <span class="stringliteral">"Obj-C optimized setter - NYI"</span>);</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>       }</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>     }</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>       setPropertyFn = CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a3827b2573fc5daff8a4a1f26140a4fa1" title="Return the runtime function for setting properties.">GetPropertySetFunction</a>();</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>       <span class="keywordflow">if</span> (!setPropertyFn) {</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>         CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a376568c3ab5102ebd46232c944128aee">ErrorUnsupported</a>(propImpl, <span class="stringliteral">"Obj-C setter requiring atomic copy"</span>);</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>         <span class="keywordflow">return</span>;</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>     }</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>    </div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>     <span class="comment">// Emit objc_setProperty((id) self, _cmd, offset, arg,</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>     <span class="comment">//                       <is-atomic>, <is-copy>).</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>     llvm::Value *cmd =</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(LocalDeclMap[setterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ab5c716be2156d59824da88f40414988a">getCmdDecl</a>()]);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>     llvm::Value *<span class="keyword">self</span> =</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), <a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</a>);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>     llvm::Value *ivarOffset =</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac23a0355d2d20770b02f2d92c5872c81">EmitIvarOffset</a>(classImpl-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), ivar);</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>     llvm::Value *arg = LocalDeclMap[*setterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>()];</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>     arg = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(arg, <span class="stringliteral">"arg"</span>), <a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#a0609fd52690a7779529ad842007e239f">VoidPtrTy</a>);</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>     <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> args;</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>     args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<span class="keyword">self</span>), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType());</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>     args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(cmd), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCSelType());</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>     <span class="keywordflow">if</span> (setOptimizedPropertyFn) {</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(arg), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType());</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarOffset), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getPointerDiffType());</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().arrangeFreeFunctionCall(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ad2e842be873196b0fab39b1479223209" title="void">VoidTy</a>, args,</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>                                                   <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>                                                   <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>                setOptimizedPropertyFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ivarOffset), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getPointerDiffType());</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(arg), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType());</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getInt1(strategy.isAtomic())),</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>                <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>       args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.getInt1(strategy.isCopy())),</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>                <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a699510ff594ec09506e02c3ec68e4ff5">BoolTy</a>);</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>       <span class="comment">// FIXME: We shouldn't need to get the function info here, the runtime</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>       <span class="comment">// already should have computed it to build the function.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>().arrangeFreeFunctionCall(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ad2e842be873196b0fab39b1479223209" title="void">VoidTy</a>, args,</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>                                                   <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>                                                   <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>                setPropertyFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), args);</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>     }</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>     </div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>   }</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> </div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>   <span class="keywordflow">case</span> PropertyImplStrategy::CopyStruct:</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>     <a class="code" href="CGObjC_8cpp.html#aec004cf7d3d14d6e0df33b4502b529e9">emitStructSetterCall</a>(*<span class="keyword">this</span>, setterMethod, ivar);</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> </div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>   <span class="keywordflow">case</span> PropertyImplStrategy::Expression:</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>   }</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> </div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>   <span class="comment">// Otherwise, fake up some ASTs and emit a normal assignment.</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>   <a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *selfDecl = setterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aca5d21d1409956e5d6ba77b0ce4beb0d">getSelfDecl</a>();</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</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> <span class="keyword">self</span>(selfDecl, <span class="keyword">false</span>, selfDecl-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(),</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</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="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="l01215"></a><span class="lineno"> 1215</span>   <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> selfLoad(<a class="code" href="classclang_1_1ImplicitCastExpr.html#a717c235d4e3d794bb035b586f5b95e1fa0610e8a9e3d21423e2ee90a7cb120ee2">ImplicitCastExpr::OnStack</a>,</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>                             selfDecl-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca3b60e4a2d76963a5a2db0e0b720d8ce4">CK_LValueToRValue</a>, &<span class="keyword">self</span>,</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>                             <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="l01218"></a><span class="lineno"> 1218</span>   <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> ivarRef(ivar, ivar-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#ab6a2e89b5fcb1618aaef3a38563b10e4">getNonReferenceType</a>(),</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</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_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="l01220"></a><span class="lineno"> 1220</span>                           &selfLoad, <span class="keyword">true</span>, <span class="keyword">true</span>);</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>   <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *argDecl = *setterMethod-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>();</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> argType = argDecl->getType().getNonReferenceType();</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</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> arg(argDecl, <span class="keyword">false</span>, argType, <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="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="l01225"></a><span class="lineno"> 1225</span>   <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> argLoad(<a class="code" href="classclang_1_1ImplicitCastExpr.html#a717c235d4e3d794bb035b586f5b95e1fa0610e8a9e3d21423e2ee90a7cb120ee2">ImplicitCastExpr::OnStack</a>,</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>                            argType.<a class="code" href="classclang_1_1QualType.html#a5ddbce9d32b4f8043b641584599fe7e5" title="Retrieve the unqualified variant of the given type, removing as little sugar as possible.">getUnqualifiedType</a>(), <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca3b60e4a2d76963a5a2db0e0b720d8ce4">CK_LValueToRValue</a>,</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>                            &arg, <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="l01228"></a><span class="lineno"> 1228</span>     </div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>   <span class="comment">// The property type can differ from the ivar type in some situations with</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>   <span class="comment">// Objective-C pointer types, we can always bit cast the RHS in these cases.</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>   <span class="comment">// The following absurdity is just to ensure well-formed IR.</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>   <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8c" title="CastKind - The kind of operation required for a conversion.">CastKind</a> argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca534ff1b7708ce501d6f39f65d98ffdcb">CK_NoOp</a>;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>   <span class="keywordflow">if</span> (ivarRef.getType()->isObjCObjectPointerType()) {</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>     <span class="keywordflow">if</span> (argLoad.getType()->isObjCObjectPointerType())</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>       argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>;</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argLoad.getType()->isBlockPointerType())</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>       argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca90f41f80fbcffc5e47ac9c9b448f5c00">CK_BlockPointerToObjCPointerCast</a>;</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>       argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8cacc999b93239de9e4bc022719ddd96159">CK_CPointerToObjCPointerCast</a>;</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ivarRef.getType()->isBlockPointerType()) {</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>      <span class="keywordflow">if</span> (argLoad.getType()->isBlockPointerType())</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>       argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>       argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8cac5436c20ce687d8a80eac6656ccd4053">CK_AnyPointerToBlockPointerCast</a>;</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ivarRef.getType()->isPointerType()) {</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>     argCK = <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   }</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>   <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> argCast(<a class="code" href="classclang_1_1ImplicitCastExpr.html#a717c235d4e3d794bb035b586f5b95e1fa0610e8a9e3d21423e2ee90a7cb120ee2">ImplicitCastExpr::OnStack</a>,</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>                            ivarRef.getType(), argCK, &argLoad,</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>                            <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="l01251"></a><span class="lineno"> 1251</span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *finalArg = &argLoad;</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</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>(ivarRef.getType(),</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>                                            argLoad.getType()))</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>     finalArg = &argCast;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> </div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>   <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> assign(&ivarRef, finalArg, <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1af0f6693357ca6bc7488c1d4de4cbe303">BO_Assign</a>,</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>                         ivarRef.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="l01259"></a><span class="lineno"> 1259</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>(), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(&assign);</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> }</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"></span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">/// \brief Generate an Objective-C property setter function.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">/// The given Decl must be an ObjCImplementationDecl. \@synthesize</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">/// is illegal within a category.</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abd650cdb47806bf1336d2a170c190b5e"> 1267</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abd650cdb47806bf1336d2a170c190b5e" title="Generate an Objective-C property setter function.">CodeGenFunction::GenerateObjCSetter</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>                                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID) {</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   llvm::Constant *AtomicHelperFn = </div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac0a00459dc6f8aba54a631c7aff1d5c">GenerateObjCAtomicSetterCopyHelperFunction</a>(PID);</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = PID-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>();</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>   <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = PD-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a0deedcad9deaf37c5964646a16a6ef36">getSetterMethodDecl</a>();</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>   assert(OMD && <span class="stringliteral">"Invalid call to generate setter (empty method)"</span>);</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">StartObjCMethod</a>(OMD, IMP-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae05fc39cf093817b3b2ce044686703fb">getLocStart</a>());</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> </div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7db283a16fbbb45515d9cf5b92dd9e9a">generateObjCSetterBody</a>(IMP, PID, AtomicHelperFn);</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> </div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adefc925f9c3921cc89f39663e2b2379e">FinishFunction</a>();</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> }</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> </div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>   <span class="keyword">struct </span>DestroyIvar : <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">EHScopeStack::Cleanup</a> {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>     llvm::Value *addr;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">CodeGenFunction::Destroyer</a> *destroyer;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>     <span class="keywordtype">bool</span> useEHCleanupForArray;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>     DestroyIvar(llvm::Value *addr, <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar,</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>                 <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">CodeGenFunction::Destroyer</a> *destroyer,</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>                 <span class="keywordtype">bool</span> useEHCleanupForArray)</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>       : addr(addr), ivar(ivar), destroyer(destroyer),</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>         useEHCleanupForArray(useEHCleanupForArray) {}</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> </div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, Flags flags) {</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>         = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), addr, ivar, <span class="comment">/*CVR*/</span> 0);</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9aaad21865e78a4de5b46182c55f5a35">emitDestroy</a>(lvalue.<a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a5ed4224f90d6bb056bc6df1523c3b7dd">getAddress</a>(), ivar->getType(), destroyer,</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>                       flags.isForNormalCleanup() && useEHCleanupForArray);</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> }</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment"></span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment">/// Like CodeGenFunction::destroyARCStrong, but do it with a call.</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#a48c8cf465f083107ddc04b774bf3e35c"> 1305</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#a48c8cf465f083107ddc04b774bf3e35c" title="Like CodeGenFunction::destroyARCStrong, but do it with a call.">destroyARCStrongWithStore</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>                                       llvm::Value *addr,</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</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="l01308"></a><span class="lineno"> 1308</span>   llvm::Value *null = <a class="code" href="CGObjC_8cpp.html#a463c0cd8f7b9851d73838e56efed2deb">getNullForVariable</a>(addr);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>   CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2863540e649e702b48a34173d7ead2bd">EmitARCStoreStrongCall</a>(addr, null, <span class="comment">/*ignored*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> }</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> </div>
+<div class="line"><a name="l01312"></a><span class="lineno"><a class="code" href="CGObjC_8cpp.html#ac25e037670f0a582fa90a9b88b44ed0c"> 1312</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CGObjC_8cpp.html#ac25e037670f0a582fa90a9b88b44ed0c">emitCXXDestructMethod</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>                                   <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *impl) {</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html" title="Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited...">CodeGenFunction::RunCleanupsScope</a> scope(CGF);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> </div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>   llvm::Value *<span class="keyword">self</span> = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>();</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> </div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *iface = impl-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>();</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>   <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivar = iface-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a33ad0524e4d449655e216893b85910e2">all_declared_ivar_begin</a>();</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>        ivar; ivar = ivar-><a class="code" href="classclang_1_1ObjCIvarDecl.html#ad4e167798de561f182d039520eb90b29">getNextIvar</a>()) {</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</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> = ivar->getType();</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> </div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>     <span class="comment">// Check whether the ivar is a destructible type.</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>     <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> dtorKind = type.<a class="code" href="classclang_1_1QualType.html#a4af063b416855444719ed33495b48537">isDestructedType</a>();</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>     <span class="keywordflow">if</span> (!dtorKind) <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> </div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">CodeGenFunction::Destroyer</a> *destroyer = 0;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> </div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>     <span class="comment">// Use a call to objc_storeStrong to destroy strong ivars, for the</span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>     <span class="comment">// general benefit of the tools.</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>     <span class="keywordflow">if</span> (dtorKind == <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfcad585d701cc19b3a22c6d3609a81379ad">QualType::DK_objc_strong_lifetime</a>) {</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>       destroyer = <a class="code" href="CGObjC_8cpp.html#a48c8cf465f083107ddc04b774bf3e35c" title="Like CodeGenFunction::destroyARCStrong, but do it with a call.">destroyARCStrongWithStore</a>;</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> </div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>     <span class="comment">// Otherwise use the default for the destruction kind.</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>       destroyer = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a581121a1e37fc0e596c24c58f93b0e12">getDestroyer</a>(dtorKind);</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>     }</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> </div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>     <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> cleanupKind = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab7774ca5dab3b221895fcbf1529084f5">getCleanupKind</a>(dtorKind);</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> </div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<DestroyIvar>(cleanupKind, <span class="keyword">self</span>, ivar, destroyer,</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>                                          cleanupKind & <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa2a393433bdad04753d5b3b39597b2e90">EHCleanup</a>);</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>   }</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> </div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>   assert(scope.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a6f0580f4dfc815d9fcc73841de72b0d3" title="Determine whether this scope requires any cleanups.">requiresCleanups</a>() && <span class="stringliteral">"nothing to do in .cxx_destruct?"</span>);</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a44ccfb1a455d7b83bb25dbdfef78d554"> 1348</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a44ccfb1a455d7b83bb25dbdfef78d554">CodeGenFunction::GenerateObjCCtorDtorMethod</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>                                                  <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD,</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>                                                  <span class="keywordtype">bool</span> ctor) {</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad54865d4902bed294f62149712f56631">createImplicitParams</a>(CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>(), IMP-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>());</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">StartObjCMethod</a>(MD, IMP-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae05fc39cf093817b3b2ce044686703fb">getLocStart</a>());</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>   <span class="comment">// Emit .cxx_construct.</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   <span class="keywordflow">if</span> (ctor) {</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>     <span class="comment">// Suppress the final autorelease in ARC.</span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed" title="In ARC, whether we should autorelease the return value.">AutoreleaseResult</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> </div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<CXXCtorInitializer *, 8></a> IvarInitializers;</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCImplementationDecl.html#a71b4589aff18c117a0dd9b7f3e8295b8" title="init_const_iterator - Iterates through the ivar initializer list.">ObjCImplementationDecl::init_const_iterator</a> B = IMP-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#aa4c77ff6ced9a4530797ce4fc0cc7150" title="init_begin() - Retrieve an iterator to the first initializer.">init_begin</a>(),</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>            E = IMP-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a20c1c20fa2a7a25815bca657ffb53753" title="init_end() - Retrieve an iterator past the last initializer.">init_end</a>(); B != E; ++B) {</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>       <a class="code" href="classclang_1_1CXXCtorInitializer.html" title="Represents a C++ base or member initializer.">CXXCtorInitializer</a> *IvarInit = (*B);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>       <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field = IvarInit-><a class="code" href="classclang_1_1CXXCtorInitializer.html#a7d079569b4b69f0f7f48f5c61828d536">getAnyMember</a>();</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>       <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a>  *Ivar = cast<ObjCIvarDecl>(Field);</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">TypeOfSelfObject</a>(), </div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>                                     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), Ivar, 0);</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad58a7f0f413e2aea5174df10adc6d1b5">EmitAggExpr</a>(IvarInit-><a class="code" href="classclang_1_1CXXCtorInitializer.html#a6a232de857e5b703d4d21fc86588f77b" title="Get the initializer.">getInit</a>(),</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>                   <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a4da02d41c1e95dca9477b21b89e1841c">AggValueSlot::forLValue</a>(LV, <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a6d84e167770e22bc451368b9a91ca431a8136bc24318d61056b0ceb4c75a149fd">AggValueSlot::IsDestructed</a>,</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>                                           <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#abe9f62d142350d6acdcfde4704f3b3f6acbe806e6b4a058a90fec01ddd6e4107f">AggValueSlot::DoesNotNeedGCBarriers</a>,</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>                                           <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a5c9c197ce5564bb19209233a7004db7fabc0ebb1a165c68902e446375b1e5bfe1">AggValueSlot::IsNotAliased</a>));</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>     }</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>     <span class="comment">// constructor returns 'self'.</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html">CodeGenTypes</a> &Types = CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>();</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> IdTy(CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a46cf0bb1b4e31396963afe4f98956273" title="Represents the Objective-CC id type.">getObjCIdType</a>());</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>     llvm::Value *SelfAsId =</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>(), Types.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a1bd0fa41a59020e22706ac3f36f7c31f" title="ConvertType - Convert type T into a llvm::Type.">ConvertType</a>(IdTy));</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>     EmitReturnOfRValue(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(SelfAsId), IdTy);</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>   <span class="comment">// Emit .cxx_destruct.</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>     <a class="code" href="CGObjC_8cpp.html#ac25e037670f0a582fa90a9b88b44ed0c">emitCXXDestructMethod</a>(*<span class="keyword">this</span>, IMP);</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   }</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adefc925f9c3921cc89f39663e2b2379e">FinishFunction</a>();</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> }</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> </div>
+<div class="line"><a name="l01386"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a50bdfa19d81f398178bdbf0b6fb4b99f"> 1386</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a50bdfa19d81f398178bdbf0b6fb4b99f">CodeGenFunction::IndirectObjCSetterArg</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FI) {</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html#a65e9af9d90f96254d71c45f2669d3115">CGFunctionInfo::const_arg_iterator</a> it = FI.<a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html#ae79a956b6ca82977dc154183144c62fe">arg_begin</a>();</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>   it++; it++;</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1ABIArgInfo.html">ABIArgInfo</a> &AI = it->info;</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>   <span class="comment">// FIXME. Is this sufficient check?</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>   <span class="keywordflow">return</span> (AI.<a class="code" href="classclang_1_1CodeGen_1_1ABIArgInfo.html#a5a95c44143588f81827dc8aeda02d3d0">getKind</a>() == <a class="code" href="classclang_1_1CodeGen_1_1ABIArgInfo.html#a52bcdf401687eb35f8569bb9da8d687cadae4ef4ee3f65e068672fa51f8aaca15">ABIArgInfo::Indirect</a>);</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> </div>
+<div class="line"><a name="l01394"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab4a57977feb93815f431a555c5f12ca9"> 1394</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab4a57977feb93815f431a555c5f12ca9">CodeGenFunction::IvarTypeWithAggrGCObjects</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty) {</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   <span class="keywordflow">if</span> (CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>().getGC() == <a class="code" href="classclang_1_1LangOptions.html#a01202ff51e7f9dbf39a447360d0a3a84ab62653320d5d7633c47854b73fe5d93d">LangOptions::NonGC</a>)</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *FDTTy = Ty.<a class="code" href="classclang_1_1QualType.html#a669d7ba0645cd05d53508e3c1895075a">getTypePtr</a>()-><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="l01398"></a><span class="lineno"> 1398</span>     <span class="keywordflow">return</span> FDTTy->getDecl()->hasObjectMember();</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> }</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5"> 1402</a></span> llvm::Value *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e29d062b0663a0ffa00ac18ef73c0d5">CodeGenFunction::LoadObjCSelf</a>() {</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Self = cast<ObjCMethodDecl>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">CurFuncDecl</a>)->getSelfDecl();</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</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> DRE(Self, <span class="comment">/*is enclosing local*/</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">CurFuncDecl</a> != <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a57b46a6624e733181105ee9c0eb39618" title="CurCodeDecl - This is the inner-most code context, which includes blocks.">CurCodeDecl</a>),</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>                   Self-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</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>, <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="l01406"></a><span class="lineno"> 1406</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aff8d4768706029de6dbe796b2867a8ef">EmitLoadOfScalar</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a811bcfd5769bf9dc2ad7f62e9350dc56">EmitDeclRefLValue</a>(&DRE), <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="l01407"></a><span class="lineno"> 1407</span> }</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> </div>
+<div class="line"><a name="l01409"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e"> 1409</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a761e878df508c90d00396c64673aff0e" title="TypeOfSelfObject - Return type of object that this self represents.">CodeGenFunction::TypeOfSelfObject</a>() {</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = cast<ObjCMethodDecl>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">CurFuncDecl</a>);</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>   <a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *selfDecl = OMD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aca5d21d1409956e5d6ba77b0ce4beb0d">getSelfDecl</a>();</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *PTy = cast<ObjCObjectPointerType>(</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</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>(selfDecl->getType()));</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>   <span class="keywordflow">return</span> PTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a610d3fc1a15aafd545c35748819a5227">getPointeeType</a>();</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> }</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> </div>
+<div class="line"><a name="l01417"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aef10f65a10635aeb5b412a467f9e5437"> 1417</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aef10f65a10635aeb5b412a467f9e5437">CodeGenFunction::EmitObjCForCollectionStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>){</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>   llvm::Constant *EnumerationMutationFn =</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a6c4b46775e5def1156e767bf433e7848">EnumerationMutationFunction</a>();</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> </div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>   <span class="keywordflow">if</span> (!EnumerationMutationFn) {</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a376568c3ab5102ebd46232c944128aee">ErrorUnsupported</a>(&S, <span class="stringliteral">"Obj-C fast enumeration for this runtime"</span>);</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>   }</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> </div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html">CGDebugInfo</a> *DI = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aae2a6ad5f0ab2ff7b94e717a18352512">getDebugInfo</a>();</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>   <span class="keywordflow">if</span> (DI)</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>     DI-><a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html#ab42b87541eff690214862d1648366d6c">EmitLexicalBlockStart</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, S.<a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>());</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> </div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>   <span class="comment">// The local variable comes into scope immediately.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html">AutoVarEmission</a> variable = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#aee4cf89514f6143af8599eec60dbb90f">AutoVarEmission::invalid</a>();</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *SD = dyn_cast<DeclStmt>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>()))</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>     variable = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40b64c30a88dc9b44b4941951bf80da7">EmitAutoVarAlloca</a>(*cast<VarDecl>(SD->getSingleDecl()));</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> </div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>   <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> LoopEnd = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">getJumpDestInCurrentScope</a>(<span class="stringliteral">"forcoll.end"</span>);</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> </div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>   <span class="comment">// Fast enumeration state.</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> StateTy = CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4369d5282e78727f80f1466a71038733" title="Retrieve the record type that describes the state of an Objective-C fast enumeration loop (for...">getObjCFastEnumerationStateType</a>();</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>   llvm::Value *StatePtr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(StateTy, <span class="stringliteral">"state.ptr"</span>);</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7344a3814e9742710d31ef902d639de2">EmitNullInitialization</a>(StatePtr, StateTy);</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> </div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>   <span class="comment">// Number of elements in the items array.</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> NumItems = 16;</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="comment">// Fetch the countByEnumeratingWithState:objects:count: selector.</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II[] = {</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>     &CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"countByEnumeratingWithState"</span>),</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>     &CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"objects"</span>),</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>     &CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"count"</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>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> FastEnumSel =</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a4a62f428c7e3d80e67885383b9263054">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a544656d98576ff2c1adb3e61a038e5b2">Selectors</a>.<a class="code" href="classclang_1_1SelectorTable.html#aae4996e6370b3c39722a757eb37b38b8" title="Can create any sort of selector.">getSelector</a>(llvm::array_lengthof(II), &II[0]);</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ItemsTy =</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a1dfd9aba04afad486b0dbbfc17de130b" title="Return the unique reference to the type for a constant array of the specified element type...">getConstantArrayType</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType(),</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>                                       llvm::APInt(32, NumItems),</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>                                       <a class="code" href="classclang_1_1ArrayType.html#a044cc135a180b91387c89659ab7cabb4a4c2f47d08e59b0457e60184462599c17">ArrayType::Normal</a>, 0);</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>   llvm::Value *ItemsPtr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(ItemsTy, <span class="stringliteral">"items.ptr"</span>);</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>   <span class="comment">// Emit the collection pointer.  In ARC, we do a retain.</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>   llvm::Value *Collection;</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount) {</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>     Collection = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a89df616486925c940d4d6d2388feacbe">EmitARCRetainScalarExpr</a>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>());</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>     <span class="comment">// Enter a cleanup to do the release.</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a05d91b79ac8319906346cdb3b3ad6948">EmitObjCConsumeObject</a>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>()-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), Collection);</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     Collection = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>());</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>   }</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> </div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>   <span class="comment">// The 'continue' label needs to appear within the cleanup for the</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>   <span class="comment">// collection object.</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>   <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> AfterBody = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">getJumpDestInCurrentScope</a>(<span class="stringliteral">"forcoll.next"</span>);</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> </div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>   <span class="comment">// Send it our message:</span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>;</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> </div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>   <span class="comment">// The first argument is a temporary of the enumeration-state type.</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(StatePtr), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getPointerType(StateTy));</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> </div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>   <span class="comment">// The second argument is a temporary array with space for NumItems</span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>   <span class="comment">// pointers.  We'll actually be loading elements from the array</span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   <span class="comment">// pointer written into the control state; this buffer is so that</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>   <span class="comment">// collections that *aren't* backed by arrays can still queue up</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>   <span class="comment">// batches of elements.</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(ItemsPtr), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getPointerType(ItemsTy));</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>   <span class="comment">// The third argument is the capacity of that temporary array.</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>   llvm::Type *UnsignedLongLTy = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().UnsignedLongTy);</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>   llvm::Constant *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">Count</a> = llvm::ConstantInt::get(UnsignedLongLTy, NumItems);</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>   Args.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(Count), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().UnsignedLongTy);</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> </div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>   <span class="comment">// Start the enumeration.</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> CountRV =</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(),</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>                                              <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().UnsignedLongTy,</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>                                              FastEnumSel,</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>                                              Collection, Args);</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> </div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="comment">// The initial number of objects that were returned in the buffer.</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>   llvm::Value *initialBufferLimit = CountRV.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>();</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>   llvm::BasicBlock *EmptyBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.empty"</span>);</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>   llvm::BasicBlock *LoopInitBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.loopinit"</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>   llvm::Value *zero = llvm::Constant::getNullValue(UnsignedLongLTy);</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> </div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>   <span class="comment">// If the limit pointer was zero to begin with, the collection is</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>   <span class="comment">// empty; skip all this.</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCondBr(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateICmpEQ(initialBufferLimit, zero, <span class="stringliteral">"iszero"</span>),</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>                        EmptyBB, LoopInitBB);</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> </div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>   <span class="comment">// Otherwise, initialize the loop.</span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(LoopInitBB);</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> </div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>   <span class="comment">// Save the initial mutations value.  This is the value at an</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>   <span class="comment">// address that was written into the state object by</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>   <span class="comment">// countByEnumeratingWithState:objects:count:.</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>   llvm::Value *StateMutationsPtrPtr =</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(StatePtr, 2, <span class="stringliteral">"mutationsptr.ptr"</span>);</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>   llvm::Value *StateMutationsPtr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(StateMutationsPtrPtr,</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>                                                       <span class="stringliteral">"mutationsptr"</span>);</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> </div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   llvm::Value *initialMutations =</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(StateMutationsPtr, <span class="stringliteral">"forcoll.initial-mutations"</span>);</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> </div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   <span class="comment">// Start looping.  This is the point we return to whenever we have a</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>   <span class="comment">// fresh, non-empty batch of objects.</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>   llvm::BasicBlock *LoopBodyBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.loopbody"</span>);</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(LoopBodyBB);</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> </div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>   <span class="comment">// The current index into the buffer.</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>   llvm::PHINode *index = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreatePHI(UnsignedLongLTy, 3, <span class="stringliteral">"forcoll.index"</span>);</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>   index->addIncoming(zero, LoopInitBB);</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> </div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>   <span class="comment">// The current buffer size.</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>   llvm::PHINode *count = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreatePHI(UnsignedLongLTy, 3, <span class="stringliteral">"forcoll.count"</span>);</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>   count->addIncoming(initialBufferLimit, LoopInitBB);</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> </div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>   <span class="comment">// Check whether the mutations value has changed from where it was</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>   <span class="comment">// at start.  StateMutationsPtr should actually be invariant between</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>   <span class="comment">// refreshes.</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>   StateMutationsPtr = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(StateMutationsPtrPtr, <span class="stringliteral">"mutationsptr"</span>);</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>   llvm::Value *currentMutations</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>     = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(StateMutationsPtr, <span class="stringliteral">"statemutations"</span>);</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> </div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>   llvm::BasicBlock *WasMutatedBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.mutated"</span>);</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>   llvm::BasicBlock *WasNotMutatedBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.notmutated"</span>);</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> </div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCondBr(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateICmpEQ(currentMutations, initialMutations),</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>                        WasNotMutatedBB, WasMutatedBB);</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> </div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   <span class="comment">// If so, call the enumeration-mutation function.</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(WasMutatedBB);</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>   llvm::Value *V =</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(Collection,</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>                           <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType()));</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> Args2;</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>   Args2.<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html#a1045111747e571d65a465fef8cdf9abd">add</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(V), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getObjCIdType());</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>   <span class="comment">// FIXME: We shouldn't need to get the function info here, the runtime already</span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   <span class="comment">// should have computed it to build the function.</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a1325760f10142c1da8521b53734858ef">getTypes</a>().<a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html#a9c0dc1747ba8a68d004619269218fc29">arrangeFreeFunctionCall</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html#ad2e842be873196b0fab39b1479223209" title="void">VoidTy</a>, Args2,</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>                                                   <a class="code" href="classclang_1_1FunctionType_1_1ExtInfo.html">FunctionType::ExtInfo</a>(),</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>                                                   <a class="code" href="classclang_1_1CodeGen_1_1RequiredArgs.html#aa5f6271941257ae6b5f05b976a97e1bcac93f131e390095a56245147f25007607">RequiredArgs::All</a>),</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>            EnumerationMutationFn, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(), Args2);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> </div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>   <span class="comment">// Otherwise, or if the mutation function returns, just continue.</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(WasNotMutatedBB);</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">// Initialize the element variable.</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html" title="Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited...">RunCleanupsScope</a> elementVariableScope(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>   <span class="keywordtype">bool</span> elementIsVariable;</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> elementLValue;</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> elementType;</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *SD = dyn_cast<DeclStmt>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>())) {</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>     <span class="comment">// Initialize the variable, in case it's a __block variable or something.</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a373581b9034f81c725f8aaa829ece14b">EmitAutoVarInit</a>(variable);</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> </div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>* D = cast<VarDecl>(SD->getSingleDecl());</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</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> tempDRE(const_cast<VarDecl*>(D), <span class="keyword">false</span>, D-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>(),</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</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="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="l01582"></a><span class="lineno"> 1582</span>     elementLValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(&tempDRE);</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>     elementType = D-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>     elementIsVariable = <span class="keyword">true</span>;</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">if</span> (D-><a class="code" href="classclang_1_1VarDecl.html#a15bdce290ac352eb7b1bcee3fa2fc5e6" title="Determine whether this variable is an ARC pseudo-__strong variable. A pseudo-__strong variable has a ...">isARCPseudoStrong</a>())</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>       elementLValue.getQuals().setObjCLifetime(<a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a1868aff47acf923ca643cb6950363615">Qualifiers::OCL_ExplicitNone</a>);</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>     elementLValue = <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a>(); <span class="comment">// suppress warning</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>     elementType = cast<Expr>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>())->getType();</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>     elementIsVariable = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>   }</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>   llvm::Type *convertedElementType = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(elementType);</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> </div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>   <span class="comment">// Fetch the buffer out of the enumeration state.</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   <span class="comment">// TODO: this pointer should actually be invariant between</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>   <span class="comment">// refreshes, which would help us do certain loop optimizations.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>   llvm::Value *StateItemsPtr =</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(StatePtr, 1, <span class="stringliteral">"stateitems.ptr"</span>);</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   llvm::Value *EnumStateItems =</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(StateItemsPtr, <span class="stringliteral">"stateitems"</span>);</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>   <span class="comment">// Fetch the value at the current index from the buffer.</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>   llvm::Value *CurrentItemPtr =</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateGEP(EnumStateItems, index, <span class="stringliteral">"currentitem.ptr"</span>);</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>   llvm::Value *CurrentItem = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(CurrentItemPtr);</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> </div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>   <span class="comment">// Cast that value to the right type.</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>   CurrentItem = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateBitCast(CurrentItem, convertedElementType,</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>                                       <span class="stringliteral">"currentitem"</span>);</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>   <span class="comment">// Make sure we have an l-value.  Yes, this gets evaluated every</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>   <span class="comment">// time through the loop.</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>   <span class="keywordflow">if</span> (!elementIsVariable) {</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>     elementLValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(cast<Expr>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>()));</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(CurrentItem), elementLValue);</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4957380d06be8ac67e51f46d96830788">EmitScalarInit</a>(CurrentItem, elementLValue);</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>   }</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">// If we do have an element variable, this assignment is the end of</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>   <span class="comment">// its initialization.</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>   <span class="keywordflow">if</span> (elementIsVariable)</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa92cef8f0df2b1f7f8aaadac281a3f23">EmitAutoVarCleanups</a>(variable);</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> </div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>   <span class="comment">// Perform the loop body, setting up break and continue labels.</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>   BreakContinueStack.push_back(BreakContinue(LoopEnd, AfterBody));</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>   {</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html" title="Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited...">RunCleanupsScope</a> <a class="code" href="classclang_1_1Scope.html">Scope</a>(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a9da84c935e436a79217195925a30626a">getBody</a>());</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>   }</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>   BreakContinueStack.pop_back();</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">// Destroy the element variable now.</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   elementVariableScope.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a03074aa0531976ff3827c74d69789744" title="Force the emission of cleanups now, instead of waiting until this object is destroyed.">ForceCleanup</a>();</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> </div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>   <span class="comment">// Check whether there are more elements.</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(AfterBody.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>());</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> </div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>   llvm::BasicBlock *FetchMoreBB = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"forcoll.refetch"</span>);</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> </div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>   <span class="comment">// First we check in the local buffer.</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   llvm::Value *indexPlusOne</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>     = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateAdd(index, llvm::ConstantInt::get(UnsignedLongLTy, 1));</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> </div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>   <span class="comment">// If we haven't overrun the buffer yet, we can continue.</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCondBr(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateICmpULT(indexPlusOne, count),</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>                        LoopBodyBB, FetchMoreBB);</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> </div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>   index->addIncoming(indexPlusOne, AfterBody.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>());</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>   count->addIncoming(count, AfterBody.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>());</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> </div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>   <span class="comment">// Otherwise, we have to fetch more elements.</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(FetchMoreBB);</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> </div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>   CountRV =</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>     CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a478a6b1580a6c1e2825a7d92102dcca1">GenerateMessageSend</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>(),</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>                                              <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().UnsignedLongTy,</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>                                              FastEnumSel,</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>                                              Collection, Args);</div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> </div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>   <span class="comment">// If we got a zero count, we're done.</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>   llvm::Value *refetchCount = CountRV.<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a375d011820c192d736c37b316abf1cb9" title="getScalarVal() - Return the Value* of this scalar value.">getScalarVal</a>();</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> </div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>   <span class="comment">// (note that the message send might split FetchMoreBB)</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   index->addIncoming(zero, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.GetInsertBlock());</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>   count->addIncoming(refetchCount, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.GetInsertBlock());</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> </div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateCondBr(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateICmpEQ(refetchCount, zero),</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>                        EmptyBB, LoopBodyBB);</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> </div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>   <span class="comment">// No more elements.</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(EmptyBB);</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> </div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>   <span class="keywordflow">if</span> (!elementIsVariable) {</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>     <span class="comment">// If the element was not a declaration, set it to be null.</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>     llvm::Value *null = llvm::Constant::getNullValue(convertedElementType);</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>     elementLValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(cast<Expr>(S.<a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>()));</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html#a1a8427ae63385ddc17ad8c68352d95b2">RValue::get</a>(null), elementLValue);</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>   }</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> </div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>   <span class="keywordflow">if</span> (DI)</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>     DI-><a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html#a6cb8ef31ea4dbd044bd4f0a2ba48cde7">EmitLexicalBlockEnd</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, S.<a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>());</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> </div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>   <span class="comment">// Leave the cleanup we entered in ARC.</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().ObjCAutoRefCount)</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adce8f79b4f9258e2f3bd7a4d2faf4ed9" title="Pops a cleanup block. If the block includes a normal cleanup, the current insertion point is threaded...">PopCleanupBlock</a>();</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> </div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(LoopEnd.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>());</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> }</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> </div>
+<div class="line"><a name="l01693"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a90b659829772b465f99dd2567021af79"> 1693</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a90b659829772b465f99dd2567021af79">CodeGenFunction::EmitObjCAtTryStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtTryStmt.html" title="Represents Objective-C's @try ... @catch ... @finally statement.">ObjCAtTryStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>   CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a46a725e1a00725e08f57b7d0df08a679">EmitTryStmt</a>(*<span class="keyword">this</span>, S);</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> }</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> </div>
+<div class="line"><a name="l01697"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a348c253e28de3a8e030e4944bcb7bc50"> 1697</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a348c253e28de3a8e030e4944bcb7bc50">CodeGenFunction::EmitObjCAtThrowStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtThrowStmt.html" title="Represents Objective-C's @throw statement.">ObjCAtThrowStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>   CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#a71b44b66c20fe78240df7c1547ea7262">EmitThrowStmt</a>(*<span class="keyword">this</span>, S);</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> }</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> </div>
+<div class="line"><a name="l01701"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac246b8284c913edd7a222dd7052428e"> 1701</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac246b8284c913edd7a222dd7052428e">CodeGenFunction::EmitObjCAtSynchronizedStmt</a>(</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>   CGM.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a16bb1e08ec65a39764922030379aa5bc">getObjCRuntime</a>().<a class="code" href="classclang_1_1CodeGen_1_1CGObjCRuntime.html#afeb2aa743f9b018413af31c9a976de43">EmitSynchronizedStmt</a>(*<span class="keyword">this</span>, S);</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> }</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment"></span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment">/// Produce the code for a CK_ARCProduceObject.  Just does a</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment">/// primitive retain.</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a97e5d057bbed7f969fd32c21fc5980be"> 1708</a></span> <span class="comment"></span>llvm::Value *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a97e5d057bbed7f969fd32c21fc5980be">CodeGenFunction::EmitObjCProduceObject</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="namespaceclang_1_1ast__matchers.html#a82efb51f28681d561f9ce42fecf09d4b" title="Match