[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/CodeGenFunction_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CodeGenFunction_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CodeGenFunction_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CodeGenFunction_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,2729 @@
+<!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: CodeGenFunction.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">CodeGenFunction.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CodeGenFunction_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">//===-- CodeGenFunction.h - Per-Function state for LLVM CodeGen -*- 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 is the internal per-function state used for llvm translation.</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">#ifndef CLANG_CODEGEN_CODEGENFUNCTION_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_CODEGEN_CODEGENFUNCTION_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="CGBuilder_8h.html">CGBuilder.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="CGDebugInfo_8h.html">CGDebugInfo.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CGValue_8h.html">CGValue.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="EHScopeStack_8h.html">EHScopeStack.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="CodeGenModule_8h.html">CodeGenModule.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="CharUnits_8h.html">clang/AST/CharUnits.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="ABI_8h.html" title="Enums/classes describing ABI related information about constructors, destructors and thunks...">clang/Basic/ABI.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="CapturedStmt_8h.html">clang/Basic/CapturedStmt.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="CodeGenOptions_8h.html">clang/Frontend/CodeGenOptions.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/Support/Debug.h"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "llvm/Support/ValueHandle.h"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   <span class="keyword">class </span>BasicBlock;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="keyword">class </span>LLVMContext;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="keyword">class </span>MDNode;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="keyword">class </span>Module;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">class </span>SwitchInst;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keyword">class </span>Twine;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keyword">class </span><a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keyword">class </span>CallSite;</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> </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keyword">class </span>ASTContext;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="keyword">class </span>BlockDecl;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="keyword">class </span>CXXDestructorDecl;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="keyword">class </span>CXXForRangeStmt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keyword">class </span>CXXTryStmt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keyword">class </span>Decl;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="keyword">class </span>LabelDecl;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   <span class="keyword">class </span>EnumConstantDecl;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keyword">class </span>FunctionDecl;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="keyword">class </span>FunctionProtoType;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="keyword">class </span>LabelStmt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">class </span>ObjCContainerDecl;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   <span class="keyword">class </span>ObjCInterfaceDecl;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <span class="keyword">class </span>ObjCIvarDecl;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keyword">class </span>ObjCMethodDecl;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keyword">class </span>ObjCImplementationDecl;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keyword">class </span>ObjCPropertyImplDecl;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="keyword">class </span>TargetInfo;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="keyword">class </span>TargetCodeGenInfo;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keyword">class </span>VarDecl;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keyword">class </span>ObjCForCollectionStmt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keyword">class </span>ObjCAtTryStmt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keyword">class </span>ObjCAtThrowStmt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <span class="keyword">class </span>ObjCAtSynchronizedStmt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="keyword">class </span>ObjCAutoreleasePoolStmt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="keyword">namespace </span>CodeGen {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="keyword">class </span>CodeGenTypes;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="keyword">class </span>CGFunctionInfo;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="keyword">class </span>CGRecordLayout;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="keyword">class </span>CGBlockInfo;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="keyword">class </span>CGCXXABI;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keyword">class </span>BlockFlags;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="keyword">class </span>BlockFieldFlags;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment"></span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">/// The kind of evaluation to perform on values of a particular</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">/// type.  Basically, is the code in CGExprScalar, CGExprComplex, or</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">/// CGExprAgg?</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">/// TODO: should vectors maybe be split out into their own thing?</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9">   88</a></span> <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9">TypeEvaluationKind</a> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9aa4a7b0b5cf5c3854e35ca0c172e93269">   89</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9aa4a7b0b5cf5c3854e35ca0c172e93269">TEK_Scalar</a>,</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9ad0c74fbe072df321c2078f52f052d07c">   90</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9ad0c74fbe072df321c2078f52f052d07c">TEK_Complex</a>,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9a6bdd6972cc7f7a6326c359a2a07df29a">   91</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9a6bdd6972cc7f7a6326c359a2a07df29a">TEK_Aggregate</a></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> };</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">/// CodeGenFunction - This class organizes the per-function state that is used</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">/// while generating LLVM code.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">   96</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> : <span class="keyword">public</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenTypeCache.html">CodeGenTypeCache</a> {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0365730c43333c2681b5b84101b6ef96">  100</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CGCXXABI.html" title="Implements C++ ABI-specific code generation functions.">CGCXXABI</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">  /// A jump destination is an abstract label, branching to which may</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// require a jump out through normal cleanups.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">  104</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a4d6c67db08b35c8eb972e4b807953017">  105</a></span>     <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a4d6c67db08b35c8eb972e4b807953017">JumpDest</a>() : Block(0), ScopeDepth(), Index(0) {}</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#afdd4f09141179bca4107ee1287bed2f0">  106</a></span>     <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a4d6c67db08b35c8eb972e4b807953017">JumpDest</a>(llvm::BasicBlock *Block,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>              <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> <a class="code" href="ASTMatchFinder_8cpp.html#a770e10d3d091ec85cafce08832ae2e87">Depth</a>,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>              <span class="keywordtype">unsigned</span> Index)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>       : Block(Block), ScopeDepth(Depth), Index(Index) {}</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#ae61f66e6bd6a67610116a5fab1b72294">  111</a></span>     <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#ae61f66e6bd6a67610116a5fab1b72294">isValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Block != 0; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">  112</a></span>     llvm::BasicBlock *<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a144ebf8cb8b5850c9fbf2d0b42fc0283">getBlock</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Block; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#af66b6d9a34a3f83a449405cc5563c46d">  113</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#af66b6d9a34a3f83a449405cc5563c46d">getScopeDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ScopeDepth; }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a3b22ae49c1ae27ad0e09496414f4dc43">  114</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a3b22ae49c1ae27ad0e09496414f4dc43">getDestIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Index; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="comment">// This should be used cautiously.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a3d3c4a54a1035d7ddac383e379becbc6">  117</a></span>     <span class="keywordtype">void</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html#a3d3c4a54a1035d7ddac383e379becbc6">setScopeDepth</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> depth) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>       ScopeDepth = depth;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     }</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>     llvm::BasicBlock *Block;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> ScopeDepth;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     <span class="keywordtype">unsigned</span> Index;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   };</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">  127</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>;  <span class="comment">// Per-module state.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac9d18f8dc8957bb893c9cadc67d23fa4">  128</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac9d18f8dc8957bb893c9cadc67d23fa4">Target</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">  130</a></span>   <span class="keyword">typedef</span> std::pair<llvm::Value *, llvm::Value *> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">  131</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a5b4df39d75df3cedee71cc42402cc621">CGBuilderTy</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">  /// CurFuncDecl - Holds the Decl for the current outermost</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  /// non-closure context.</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">  135</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa90f4bdf700179645197d8d2b96e289f">CurFuncDecl</a>;<span class="comment"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  /// CurCodeDecl - This is the inner-most code context, which includes blocks.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a57b46a6624e733181105ee9c0eb39618">  137</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</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="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae07c4290aea434580a9f8b7c49d8c4fb">  138</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae07c4290aea434580a9f8b7c49d8c4fb">CurFnInfo</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab71525c801c40e5f56168aa3e3430b14">  139</a></span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab71525c801c40e5f56168aa3e3430b14">FnRetTy</a>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ade1be93e4c11e1945ef1c0d8bbc61ff8">  140</a></span>   llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ade1be93e4c11e1945ef1c0d8bbc61ff8">CurFn</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// CurGD - The GlobalDecl for the current function being compiled.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a07a029445bbdb49eea32bef47594ba93">  143</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a07a029445bbdb49eea32bef47594ba93" title="CurGD - The GlobalDecl for the current function being compiled.">CurGD</a>;</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">  /// PrologueCleanupDepth - The cleanup depth enclosing all the</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">  /// cleanups associated with the parameters.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad72d5b81ccc47f190df66c3018cdc17b">  147</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad72d5b81ccc47f190df66c3018cdc17b">PrologueCleanupDepth</a>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment"></span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">  /// ReturnBlock - Unified return block.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5c02aeebf59b634764acfdd48202973c">  150</a></span> <span class="comment"></span>  <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5c02aeebf59b634764acfdd48202973c" title="ReturnBlock - Unified return block.">ReturnBlock</a>;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment"></span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">  /// ReturnValue - The temporary alloca to hold the return value. This is null</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">  /// iff the function has no return value.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">  154</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#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment"></span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">  /// AllocaInsertPoint - This is an instruction in the entry block before which</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// we prefer to insert allocas.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5830e2deea009172af48e6a26ca6e417">  158</a></span> <span class="comment"></span>  llvm::AssertingVH<llvm::Instruction> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5830e2deea009172af48e6a26ca6e417">AllocaInsertPt</a>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment"></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">  /// \brief API for captured statement code generation.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html">  161</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html" title="API for captured statement code generation.">CGCapturedStmtInfo</a> {</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#aaef7daa880550fe41b15ac8022342d55">  163</a></span>     <span class="keyword">explicit</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#aaef7daa880550fe41b15ac8022342d55">CGCapturedStmtInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CapturedStmt.html" title="This captures a statement into a function. For example, the following pragma annotated compound state...">CapturedStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>                                 <a class="code" href="namespaceclang.html#a52df778f2a9b540afde2bc183e9c2075" title="The different kinds of captured statement.">CapturedRegionKind</a> K = <a class="code" href="namespaceclang.html#a52df778f2a9b540afde2bc183e9c2075a34d6fed7093db06615f55f87f0d05cf1">CR_Default</a>)</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>(K), ThisValue(0), CXXThisFieldDecl(0) {</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>       <a class="code" href="classclang_1_1DeclContext_1_1specific__decl__iterator.html">RecordDecl::field_iterator</a> Field =</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>         S.<a class="code" href="classclang_1_1CapturedStmt.html#a2f409a989ad3689bd7739a98cc6c4f2f" title="Retrieve the record declaration for captured variables.">getCapturedRecordDecl</a>()-><a class="code" href="classclang_1_1RecordDecl.html#a723c70951c30c075e7a516d1933683e4">field_begin</a>();</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>       <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CapturedStmt_1_1Capture.html" title="Describes the capture of either a variable or 'this'.">CapturedStmt::const_capture_iterator</a> I = S.<a class="code" href="classclang_1_1CapturedStmt.html#aa33c320f36e4b541a7729234524589f7" title="Retrieve an iterator pointing to the first capture.">capture_begin</a>(),</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>                                                 E = S.<a class="code" href="classclang_1_1CapturedStmt.html#aad076f0963a5acff2b103bd054884524" title="Retrieve an iterator pointing past the end of the sequence of captures.">capture_end</a>();</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>            I != E; ++I, ++Field) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>         <span class="keywordflow">if</span> (I->capturesThis())</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>           CXXThisFieldDecl = *Field;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>         <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>           CaptureFields[I->getCapturedVar()] = *Field;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>       }</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     }</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a223b13cc06d4ec7fad57dc6dd262a300">~CGCapturedStmtInfo</a>();</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a268a7c806fc16c0dd8170872f56966e5">  181</a></span>     <a class="code" href="namespaceclang.html#a52df778f2a9b540afde2bc183e9c2075" title="The different kinds of captured statement.">CapturedRegionKind</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a268a7c806fc16c0dd8170872f56966e5">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>; }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a24c0b7442952b7286ecdb70f9795a844">  183</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a24c0b7442952b7286ecdb70f9795a844">setContextValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V) { ThisValue = V; }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     <span class="comment">// \brief Retrieve the value of the context parameter.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a01b5c4844f698470e66ee1783d142cf4">  185</a></span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a01b5c4844f698470e66ee1783d142cf4">getContextValue</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ThisValue; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment"></span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">    /// \brief Lookup the captured field decl for a variable.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#ad905611f011612785a92a0c0832172d7">  188</a></span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#ad905611f011612785a92a0c0832172d7" title="Lookup the captured field decl for a variable.">lookup</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>       <span class="keywordflow">return</span> CaptureFields.lookup(VD);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     }</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a897e388bde5142f1ed54d069a6181387">  192</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a897e388bde5142f1ed54d069a6181387">isCXXThisExprCaptured</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CXXThisFieldDecl != 0; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a91b9b5f4a94112a229859b17e0a5b344">  193</a></span>     <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a91b9b5f4a94112a229859b17e0a5b344">getThisFieldDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CXXThisFieldDecl; }</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment"></span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">    /// \brief Emit the captured statement body.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#aa23f1924d21560ea7e35ce63e9ba36c9">  196</a></span> <span class="comment"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#aa23f1924d21560ea7e35ce63e9ba36c9" title="Emit the captured statement body.">EmitBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(S);</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     }</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment"></span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">    /// \brief Get the name of the capture helper.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a1c5c64a0262c9d9c5cc3c0b6583793fa">  201</a></span> <span class="comment"></span>    <span class="keyword">virtual</span> StringRef <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html#a1c5c64a0262c9d9c5cc3c0b6583793fa" title="Get the name of the capture helper.">getHelperName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">"__captured_stmt"</span>; }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">    /// \brief The kind of captured statement being generated.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a52df778f2a9b540afde2bc183e9c2075" title="The different kinds of captured statement.">CapturedRegionKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">    /// \brief Keep the map between VarDecl and FieldDecl.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment"></span>    llvm::SmallDenseMap<const VarDecl *, FieldDecl *> CaptureFields;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment"></span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">    /// \brief The base address of the captured record, passed in as the first</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">    /// argument of the parallel region function.</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment"></span>    <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *ThisValue;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment"></span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">    /// \brief Captured 'this' type.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment"></span>    <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *CXXThisFieldDecl;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   };</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a20b5348e851b83612ba250f18f67f705">  217</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CGCapturedStmtInfo.html" title="API for captured statement code generation.">CGCapturedStmtInfo</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a20b5348e851b83612ba250f18f67f705">CapturedStmtInfo</a>;</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">  /// BoundsChecking - Emit run-time bounds checks. Higher values mean</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">  /// potentially higher performance penalties.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76880ec039cfedb897335c1af9e912d1">  221</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76880ec039cfedb897335c1af9e912d1">BoundsChecking</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment"></span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">  /// \brief Whether any type-checking sanitizers are enabled. If \c false,</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">  /// calls to EmitTypeCheck can be skipped.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5dcd246aabc8392b439fc85c049965e9">  225</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5dcd246aabc8392b439fc85c049965e9" title="Whether any type-checking sanitizers are enabled. If false, calls to EmitTypeCheck can be skipped...">SanitizePerformTypeCheck</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment"></span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">  /// \brief Sanitizer options to use for this function.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2fdcc483973530909c21f658646f71b0">  228</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="structclang_1_1SanitizerOptions.html">SanitizerOptions</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2fdcc483973530909c21f658646f71b0" title="Sanitizer options to use for this function.">SanOpts</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment"></span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">  /// In ARC, whether we should autorelease the return value.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed">  231</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab76fb84db4ffd19dc418ce9ee4e253ed" title="In ARC, whether we should autorelease the return value.">AutoreleaseResult</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a49e7f272c19bddf53ac3ca76b76e875e">  233</a></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> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a49e7f272c19bddf53ac3ca76b76e875e">BlockInfo</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a802e7c33b470a41e5dc7a0ac075d9b6e">  234</a></span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a802e7c33b470a41e5dc7a0ac075d9b6e">BlockPointer</a>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac52bc45c3c8b289210ec55c1e97e7484">  236</a></span>   llvm::DenseMap<const VarDecl *, FieldDecl *> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac52bc45c3c8b289210ec55c1e97e7484">LambdaCaptureFields</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a209efee4df60519b66e523809d211269">  237</a></span>   <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a209efee4df60519b66e523809d211269">LambdaThisCaptureField</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment"></span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">  /// \brief A mapping from NRVO variables to the flags used to indicate</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">  /// when the NRVO has been applied to this variable.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a13db3e364f5199fa908979e06c806db4">  241</a></span> <span class="comment"></span>  llvm::DenseMap<const VarDecl *, llvm::Value *> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a13db3e364f5199fa908979e06c806db4" title="A mapping from NRVO variables to the flags used to indicate when the NRVO has been applied to this va...">NRVOFlags</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">  243</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html">EHScopeStack</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">  244</a></span>   <a class="code" href="classllvm_1_1SmallVector.html">llvm::SmallVector<char, 256></a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">LifetimeExtendedCleanupStack</a>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment"></span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">  /// Header for data within LifetimeExtendedCleanupStack.</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html">  247</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html" title="Header for data within LifetimeExtendedCleanupStack.">LifetimeExtendedCleanupHeader</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">    /// The size of the following cleanup object.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a5bb9ebc3f22233d59a81344b4edefb1b">  249</a></span> <span class="comment"></span>    <span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a5bb9ebc3f22233d59a81344b4edefb1b" title="The size of the following cleanup object.">Size</a> : 29;<span class="comment"></span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">    /// The kind of cleanup to push: a value from the CleanupKind enumeration.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a45532346a44917572c97070a95823133">  251</a></span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> : 3;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a9fe5e41c80bf56cf4c9f25f8181c140b">  253</a></span>     <span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a9fe5e41c80bf56cf4c9f25f8181c140b">getSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a5bb9ebc3f22233d59a81344b4edefb1b" title="The size of the following cleanup object.">Size</a>; }</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#ad6d4589cd9428fd7a664ad838599922f">  254</a></span>     <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#ad6d4589cd9428fd7a664ad838599922f">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a><span class="keyword">></span>(<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a45532346a44917572c97070a95823133" title="The kind of cleanup to push: a value from the CleanupKind enumeration.">Kind</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"></span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">  /// i32s containing the indexes of the cleanup destinations.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a502f8729f31601e16df454b5d19d24c6">  258</a></span> <span class="comment"></span>  llvm::AllocaInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a502f8729f31601e16df454b5d19d24c6" title="i32s containing the indexes of the cleanup destinations.">NormalCleanupDest</a>;</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad3c65c5c6becfe14e304a30ee1915f52">  260</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad3c65c5c6becfe14e304a30ee1915f52">NextCleanupDestIndex</a>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">  /// FirstBlockInfo - The head of a singly-linked-list of block layouts.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abc58a3117f98a1b477a0a8ec9a05c820">  263</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abc58a3117f98a1b477a0a8ec9a05c820" title="FirstBlockInfo - The head of a singly-linked-list of block layouts.">FirstBlockInfo</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment"></span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">  /// EHResumeBlock - Unified block containing a call to llvm.eh.resume.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42629b6f1784e024ae458df985c646cd">  266</a></span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42629b6f1784e024ae458df985c646cd" title="EHResumeBlock - Unified block containing a call to llvm.eh.resume.">EHResumeBlock</a>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment"></span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">  /// The exception slot.  All landing pads write the current exception pointer</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">  /// into this alloca.</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5cd8424865470119cabbd45b6a551d54">  270</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#a5cd8424865470119cabbd45b6a551d54">ExceptionSlot</a>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment"></span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">  /// The selector slot.  Under the MandatoryCleanup model, all landing pads</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">  /// write the current selector value into this alloca.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4bf01a86f387793f3ef9d1adade6aff6">  274</a></span> <span class="comment"></span>  llvm::AllocaInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4bf01a86f387793f3ef9d1adade6aff6">EHSelectorSlot</a>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment"></span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">  /// Emits a landing pad for the current EH stack.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4c938f0dcb2dbce3e1ecca10ec0f1a93" title="Emits a landing pad for the current EH stack.">EmitLandingPad</a>();</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1bf89b708d8ad895320b1c8664d775b7">getInvokeDestImpl</a>();</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>   <span class="keyword">template</span> <<span class="keyword">class</span> T></div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">  282</a></span>   <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a8d680b04bdf3f39371b0ae1ca72dc8e0">DominatingValue<T>::saved_type</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(T value) {</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>     <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a5a95bc40699a2f96e8a5f0d14d624ff2">DominatingValue<T>::save</a>(*<span class="keyword">this</span>, value);</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> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">  /// ObjCEHValueStack - Stack of Objective-C exception values, used for</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// rethrows.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a05d442e9157795067aa2be50e62ec">  289</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<llvm::Value*, 8></a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a05d442e9157795067aa2be50e62ec">ObjCEHValueStack</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment"></span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">  /// A class controlling the emission of a finally block.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html">  292</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html" title="A class controlling the emission of a finally block.">FinallyInfo</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">    /// Where the catchall's edge through the cleanup should go.</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment"></span>    <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> RethrowDest;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment"></span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">    /// A function to call to enter the catch.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment"></span>    llvm::Constant *BeginCatchFn;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment"></span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">    /// An i1 variable indicating whether or not the @finally is</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">    /// running for an exception.</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment"></span>    llvm::AllocaInst *ForEHVar;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment"></span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">    /// An i8* variable into which the exception pointer to rethrow</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">    /// has been saved.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment"></span>    llvm::AllocaInst *SavedExnVar;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html#a7f0acf3309778396d73280990f4a530a">enter</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_1Stmt.html">Stmt</a> *Finally,</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>                llvm::Constant *beginCatchFn, llvm::Constant *endCatchFn,</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>                llvm::Constant *rethrowFn);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FinallyInfo.html#a9b7a24aa9a952d483aec509f094d395d">exit</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   };</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment"></span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">  /// pushFullExprCleanup - Push a cleanup to be run at the end of the</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">  /// current full-expression.  Safe against the possibility that</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">  /// we're currently inside a conditionally-evaluated expression.</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0></div>
+<div class="line"><a name="l00318"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a30cfb949480fb66ad5424ba76613cc9a">  318</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a30cfb949480fb66ad5424ba76613cc9a">pushFullExprCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, A0 a0) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>     <span class="comment">// If we're not in a conditional branch, or if none of the</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     <span class="comment">// arguments requires saving, then use the unconditional cleanup.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>())</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<T>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0);</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>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> a0_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a0);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     <span class="keyword">typedef</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup1.html">EHScopeStack::ConditionalCleanup1<T, A0></a> CleanupType;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CleanupType>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0_saved);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42da694c2e722bbd1f9664fc04bc6733">initFullExprCleanup</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"></span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">  /// pushFullExprCleanup - Push a cleanup to be run at the end of the</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">  /// current full-expression.  Safe against the possibility that</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">  /// we're currently inside a conditionally-evaluated expression.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1></div>
+<div class="line"><a name="l00335"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a19d47a3f5a9c5f35f70901013d5981cc">  335</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a19d47a3f5a9c5f35f70901013d5981cc">pushFullExprCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, A0 a0, A1 a1) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     <span class="comment">// If we're not in a conditional branch, or if none of the</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     <span class="comment">// arguments requires saving, then use the unconditional cleanup.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>())</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<T>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0, a1);</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> a0_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a0);</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> a1_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a1);</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>     <span class="keyword">typedef</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup2.html">EHScopeStack::ConditionalCleanup2<T, A0, A1></a> CleanupType;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CleanupType>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0_saved, a1_saved);</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42da694c2e722bbd1f9664fc04bc6733">initFullExprCleanup</a>();</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   }</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment"></span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">  /// pushFullExprCleanup - Push a cleanup to be run at the end of the</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">  /// current full-expression.  Safe against the possibility that</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">  /// we're currently inside a conditionally-evaluated expression.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2></div>
+<div class="line"><a name="l00353"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0ef9d02f75dd5bfc8b291a61ede16179">  353</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0ef9d02f75dd5bfc8b291a61ede16179">pushFullExprCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, A0 a0, A1 a1, A2 a2) {</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     <span class="comment">// If we're not in a conditional branch, or if none of the</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     <span class="comment">// arguments requires saving, then use the unconditional cleanup.</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>()) {</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<T>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0, a1, a2);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>     }</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>     </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> a0_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a0);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> a1_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a1);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A2>::saved_type</a> a2_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a2);</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="keyword">typedef</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup3.html">EHScopeStack::ConditionalCleanup3<T, A0, A1, A2></a> CleanupType;</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CleanupType>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0_saved, a1_saved, a2_saved);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42da694c2e722bbd1f9664fc04bc6733">initFullExprCleanup</a>();</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   }</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment"></span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">  /// pushFullExprCleanup - Push a cleanup to be run at the end of the</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">  /// current full-expression.  Safe against the possibility that</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">  /// we're currently inside a conditionally-evaluated expression.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3></div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a523c63cd5cb56171a809f8cf5e4e09dc">  373</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a523c63cd5cb56171a809f8cf5e4e09dc">pushFullExprCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, A0 a0, A1 a1, A2 a2, A3 a3) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="comment">// If we're not in a conditional branch, or if none of the</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <span class="comment">// arguments requires saving, then use the unconditional cleanup.</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>()) {</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<T>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0, a1, a2, a3);</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>     </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> a0_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a0);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> a1_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a1);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A2>::saved_type</a> a2_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a2);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A3>::saved_type</a> a3_saved = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a929af7bda383b796625dba816bbc874b">saveValueInCond</a>(a3);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>     <span class="keyword">typedef</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup4.html">EHScopeStack::ConditionalCleanup4<T, A0, A1, A2, A3></a> CleanupType;</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.pushCleanup<CleanupType>(<a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, a0_saved, a1_saved,</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>                                      a2_saved, a3_saved);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42da694c2e722bbd1f9664fc04bc6733">initFullExprCleanup</a>();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">  /// \brief Queue a cleanup to be pushed after finishing the current</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">  /// full-expression.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3></div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9a1d26efd736c8207f0790c80ba0e4e0">  394</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9a1d26efd736c8207f0790c80ba0e4e0" title="Queue a cleanup to be pushed after finishing the current full-expression.">pushCleanupAfterFullExpr</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0, A1 a1, A2 a2, A3 a3) {</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     assert(!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>() && <span class="stringliteral">"can't defer conditional cleanup"</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="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html" title="Header for data within LifetimeExtendedCleanupStack.">LifetimeExtendedCleanupHeader</a> Header = { <span class="keyword">sizeof</span>(T), Kind };</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>     <span class="keywordtype">size_t</span> OldSize = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">LifetimeExtendedCleanupStack</a>.size();</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">LifetimeExtendedCleanupStack</a>.resize(</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">LifetimeExtendedCleanupStack</a>.size() + <span class="keyword">sizeof</span>(Header) + Header.<a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html#a5bb9ebc3f22233d59a81344b4edefb1b" title="The size of the following cleanup object.">Size</a>);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     <span class="keywordtype">char</span> *Buffer = &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac091d2ea4c9d70514608693a9f152db">LifetimeExtendedCleanupStack</a>[OldSize];</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>     <span class="keyword">new</span> (Buffer) <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1LifetimeExtendedCleanupHeader.html" title="Header for data within LifetimeExtendedCleanupStack.">LifetimeExtendedCleanupHeader</a>(Header);</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     <span class="keyword">new</span> (Buffer + <span class="keyword">sizeof</span>(Header)) T(a0, a1, a2, a3);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>   }</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment"></span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">  /// Set up the last cleaup that was pushed as a conditional</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">  /// full-expression cleanup.</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42da694c2e722bbd1f9664fc04bc6733">initFullExprCleanup</a>();</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment"></span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">  /// PushDestructorCleanup - Push a cleanup to call the</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">  /// complete-object destructor of an object of the given type at the</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">  /// given address.  Does nothing if T is not a C++ class type with a</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">  /// non-trivial destructor.</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0c00b4823b1c0d7e97e7fcfc8d1f271">PushDestructorCleanup</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="SemaOverload_8cpp.html#a561f2d973ed74723ce0b1e1165c31804">Addr</a>);</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment"></span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">  /// PushDestructorCleanup - Push a cleanup to call the</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">  /// complete-object variant of the given destructor on the object at</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">  /// the given address.</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0c00b4823b1c0d7e97e7fcfc8d1f271">PushDestructorCleanup</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *Dtor,</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>                              <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Addr);</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment"></span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">  /// PopCleanupBlock - Will pop the cleanup entry on the stack and</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">  /// process all branch fixups.</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment"></span>  <span class="keywordtype">void</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>(<span class="keywordtype">bool</span> FallThroughIsBranchThrough = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment"></span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">  /// DeactivateCleanupBlock - Deactivates the given cleanup block.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">  /// The block cannot be reactivated.  Pops it if it's the top of the</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">  /// stack.</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">  /// \param DominatingIP - An instruction which is known to</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">  ///   dominate the current IP (if set) and which lies along</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">  ///   all paths of execution between the current IP and the</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">  ///   the point at which the cleanup comes into scope.</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7269997253c3e7e47f864add0bdf2a0e" title="Deactive a cleanup that was created in an active state.">DeactivateCleanupBlock</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> Cleanup,</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>                               llvm::Instruction *DominatingIP);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment"></span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">  /// ActivateCleanupBlock - Activates an initially-inactive cleanup.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">  /// Cannot be used to resurrect a deactivated cleanup.</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">  /// \param DominatingIP - An instruction which is known to</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">  ///   dominate the current IP (if set) and which lies along</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">  ///   all paths of execution between the current IP and the</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">  ///   the point at which the cleanup comes into scope.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0d933485e6e3c844a81e9c9a7c1392ca" title="Activate a cleanup that was created in an inactivated state.">ActivateCleanupBlock</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> Cleanup,</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>                             llvm::Instruction *DominatingIP);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment"></span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">  /// \brief Enters a new scope for capturing cleanups, all of which</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">  /// will be executed once the scope is exited.</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html">  451</a></span> <span class="comment"></span>  <span class="keyword">class </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> {</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> CleanupStackDepth;</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>     <span class="keywordtype">size_t</span> LifetimeExtendedCleanupStackSize;</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>     <span class="keywordtype">bool</span> OldDidCallStackSave;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">  456</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <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>(<span class="keyword">const</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> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>     <span class="keywordtype">void</span> operator=(const <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> &) LLVM_DELETED_FUNCTION;</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>   protected:</div>
+<div class="line"><a name="l00463"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">  463</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a>& <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   public:<span class="comment"></span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">    /// \brief Enter a new cleanup scope.</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a15ca50f1507b4977ae411f57087a14fa">  467</a></span> <span class="comment"></span>    explicit <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_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF)</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>       : <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a>(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), CGF(CGF)</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>       CleanupStackDepth = CGF.EHStack.stable_begin();</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>       LifetimeExtendedCleanupStackSize =</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>           CGF.LifetimeExtendedCleanupStack.size();</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>       OldDidCallStackSave = CGF.DidCallStackSave;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>       CGF.DidCallStackSave = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>     }</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment"></span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">    /// \brief Exit this cleanup scope, emitting any accumulated</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">    /// cleanups.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a7e6dd96c2a9168df0e6573272f167e1c">  479</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a7e6dd96c2a9168df0e6573272f167e1c" title="Exit this cleanup scope, emitting any accumulated cleanups.">~RunCleanupsScope</a>() {</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a>) {</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.DidCallStackSave = OldDidCallStackSave;</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4733301f1dc83051dfddb2a16bae3ee4" title="Takes the old cleanup stack size and emits the cleanup blocks that have been added.">PopCleanupBlocks</a>(CleanupStackDepth,</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>                              LifetimeExtendedCleanupStackSize);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>       }</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     }</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment"></span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">    /// \brief Determine whether this scope requires any cleanups.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a6f0580f4dfc815d9fcc73841de72b0d3">  488</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <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="keyword"> const </span>{</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab05f975e8eb3a12ca85225dc6da12684">stable_begin</a>() != CleanupStackDepth;</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"></span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">    /// \brief Force the emission of cleanups now, instead of waiting</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">    /// until this object is destroyed.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#a03074aa0531976ff3827c74d69789744">  494</a></span> <span class="comment"></span>    <span class="keywordtype">void</span> <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="l00495"></a><span class="lineno">  495</span>       assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a> && <span class="stringliteral">"Already forced cleanup"</span>);</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.DidCallStackSave = OldDidCallStackSave;</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4733301f1dc83051dfddb2a16bae3ee4" title="Takes the old cleanup stack size and emits the cleanup blocks that have been added.">PopCleanupBlocks</a>(CleanupStackDepth,</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>                            LifetimeExtendedCleanupStackSize);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a> = <span class="keyword">false</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> </div>
+<div class="line"><a name="l00503"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">  503</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a>: <span class="keyword">protected</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> {</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range;</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const LabelDecl*, 4></a> Labels;</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a> *ParentScope;</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>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>     <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">    /// \brief Enter a new cleanup scope.</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#aa234b449a1096be437cfed616a1217fd">  513</a></span> <span class="comment"></span>    <span class="keyword">explicit</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</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>(CGF), Range(Range), ParentScope(CGF.CurLexicalScope) {</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>       CGF.CurLexicalScope = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html">CGDebugInfo</a> *DI = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aae2a6ad5f0ab2ff7b94e717a18352512">getDebugInfo</a>())</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>         DI->EmitLexicalBlockStart(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</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> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#a5a28c6c64371f961a6b54fb708becafc">  520</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#a5a28c6c64371f961a6b54fb708becafc">addLabel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *label) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>       assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a> && <span class="stringliteral">"adding label to dead scope?"</span>);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>       Labels.push_back(label);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>     }</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment"></span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">    /// \brief Exit this cleanup scope, emitting any accumulated</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">    /// cleanups.</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#aeb3a7b88b5175bce9fb6da3143cbea35">  527</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#aeb3a7b88b5175bce9fb6da3143cbea35" title="Exit this cleanup scope, emitting any accumulated cleanups.">~LexicalScope</a>() {</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html">CGDebugInfo</a> *DI = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aae2a6ad5f0ab2ff7b94e717a18352512">getDebugInfo</a>())</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>         DI->EmitLexicalBlockEnd(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, Range.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>());</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>       <span class="comment">// If we should perform a cleanup, force them now.  Note that</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>       <span class="comment">// this ends the cleanup scope before rescoping any labels.</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#ab739def8e1e5849e33cdc9e7abaab372">PerformCleanup</a>) <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#acc322ca66b148385f7e73c5b2dbabe5b" title="Force the emission of cleanups now, instead of waiting until this object is destroyed.">ForceCleanup</a>();</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>     }</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment"></span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">    /// \brief Force the emission of cleanups now, instead of waiting</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">    /// until this object is destroyed.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#acc322ca66b148385f7e73c5b2dbabe5b">  538</a></span> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#acc322ca66b148385f7e73c5b2dbabe5b" title="Force the emission of cleanups now, instead of waiting until this object is destroyed.">ForceCleanup</a>() {</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1RunCleanupsScope.html#aa4c502a365edf5c679f414356dd1f72b">CGF</a>.CurLexicalScope = ParentScope;</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>       <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.">RunCleanupsScope::ForceCleanup</a>();</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>       <span class="keywordflow">if</span> (!Labels.empty())</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#a3d3f4a87785d41a738b6a75d0f53b845">rescopeLabels</a>();</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>     }</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html#a3d3f4a87785d41a738b6a75d0f53b845">rescopeLabels</a>();</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   };</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment"></span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">  /// \brief Takes the old cleanup stack size and emits the cleanup blocks</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">  /// that have been added.</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4733301f1dc83051dfddb2a16bae3ee4" title="Takes the old cleanup stack size and emits the cleanup blocks that have been added.">PopCleanupBlocks</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> OldCleanupStackSize);</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">  /// \brief Takes the old cleanup stack size and emits the cleanup blocks</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">  /// that have been added, then adds all lifetime-extended cleanups from</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">  /// the given position to the stack.</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4733301f1dc83051dfddb2a16bae3ee4" title="Takes the old cleanup stack size and emits the cleanup blocks that have been added.">PopCleanupBlocks</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> OldCleanupStackSize,</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>                         <span class="keywordtype">size_t</span> OldLifetimeExtendedStackSize);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a80e95981b6344c4ff5303f15b767837d">ResolveBranchFixups</a>(llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac9d18f8dc8957bb893c9cadc67d23fa4">Target</a>);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment"></span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">  /// The given basic block lies in the current EH scope, but may be a</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">  /// target of a potentially scope-crossing jump; get a stable handle</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">  /// to which we can perform this jump later.</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">  565</a></span> <span class="comment"></span>  <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">getJumpDestInCurrentScope</a>(llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac9d18f8dc8957bb893c9cadc67d23fa4">Target</a>) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>     <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a>(Target,</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>                     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ae0b05f9358df39eaa0458255d311497c">getInnermostNormalCleanup</a>(),</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>                     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad3c65c5c6becfe14e304a30ee1915f52">NextCleanupDestIndex</a>++);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   }</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment"></span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">  /// The given basic block lies in the current EH scope, but may be a</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">  /// target of a potentially scope-crossing jump; get a stable handle</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">  /// to which we can perform this jump later.</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a18727d8c415234a18a2be83c8b82dd36">  574</a></span> <span class="comment"></span>  <a class="code" href="structclang_1_1CodeGen_1_1CodeGenFunction_1_1JumpDest.html">JumpDest</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a18727d8c415234a18a2be83c8b82dd36">getJumpDestInCurrentScope</a>(StringRef Name = StringRef()) {</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0e99acb67867ef0ac1b5e8d3b1e18fee">getJumpDestInCurrentScope</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(Name));</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>   }</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment"></span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">  /// EmitBranchThroughCleanup - Emit a branch from the current insert</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">  /// block through the normal cleanup handling code (if any) and then</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">  /// on to \arg Dest.</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment"></span>  <span class="keywordtype">void</span> <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>(JumpDest Dest);</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">  /// isObviouslyBranchWithoutCleanups - Return true if a branch to the</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">  /// specified destination obviously has no cleanups to run.  'false' is always</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">  /// a conservatively correct answer for this method.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad5d578d8604a4f5af35549e1db73ffeb">isObviouslyBranchWithoutCleanups</a>(JumpDest Dest) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment"></span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">  /// popCatchScope - Pops the catch scope at the top of the EHScope</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">  /// stack, emitting any required code (other than the catch handlers</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">  /// themselves).</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8c61c571269473854eeaba02ac6c63a0">popCatchScope</a>();</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> </div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a63eecb814ee3d6cc49e07e865018f541">getEHResumeBlock</a>(<span class="keywordtype">bool</span> isCleanup);</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#acd6aabde0a420648244b8e8f503dc284">getEHDispatchBlock</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">EHScopeStack::stable_iterator</a> scope);</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment"></span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">  /// An object to manage conditionally-evaluated expressions.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html">  597</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html" title="An object to manage conditionally-evaluated expressions.">ConditionalEvaluation</a> {</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>     llvm::BasicBlock *StartBB;</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>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00601"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#a9a293f80d62c80db835025bd7a799e45">  601</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#a9a293f80d62c80db835025bd7a799e45">ConditionalEvaluation</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF)</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>       : StartBB(CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.GetInsertBlock()) {}</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#a3046835ae0c0878c9a5f95904c074fd1">  604</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#a3046835ae0c0878c9a5f95904c074fd1">begin</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>       assert(CGF.OutermostConditional != <span class="keyword">this</span>);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>       <span class="keywordflow">if</span> (!CGF.OutermostConditional)</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>         CGF.OutermostConditional = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     }</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#af1253e4715a161f6c65791f65c9219da">  610</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#af1253e4715a161f6c65791f65c9219da">end</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF) {</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>       assert(CGF.OutermostConditional != 0);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>       <span class="keywordflow">if</span> (CGF.OutermostConditional == <span class="keyword">this</span>)</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>         CGF.OutermostConditional = 0;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>     }</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment"></span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">    /// Returns a block which will be executed prior to each</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">    /// evaluation of the conditional code.</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#aebc82504143ea764bc429ac6de9fe003">  618</a></span> <span class="comment"></span>    llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#aebc82504143ea764bc429ac6de9fe003">getStartingBlock</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>       <span class="keywordflow">return</span> StartBB;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</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"></span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">  /// isInConditionalBranch - Return true if we're currently emitting</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">  /// one branch or the other of a conditional expression.</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">  625</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> OutermostConditional != 0; }</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5f755cf77c644c75adfd458c6b2196a">  627</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5f755cf77c644c75adfd458c6b2196a">setBeforeOutermostConditional</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr) {</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>     assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a031fe736ab2254d7a58ae0ababaa2219">isInConditionalBranch</a>());</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     llvm::BasicBlock *block = OutermostConditional-><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html#aebc82504143ea764bc429ac6de9fe003">getStartingBlock</a>();</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>     <span class="keyword">new</span> llvm::StoreInst(value, addr, &block->back());    </div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>   }</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment"></span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">  /// An RAII object to record that we're evaluating a statement</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">  /// expression.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html">  635</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html">StmtExprEvaluation</a> {</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment"></span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">    /// We have to save the outermost conditional: cleanups in a</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment">    /// statement expression aren't conditional just because the</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment">    /// StmtExpr is.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html" title="An object to manage conditionally-evaluated expressions.">ConditionalEvaluation</a> *SavedOutermostConditional;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00644"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html#a0f9f00d24a455ecb13c1ff1199f2de4e">  644</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html#a0f9f00d24a455ecb13c1ff1199f2de4e">StmtExprEvaluation</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF)</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>       : CGF(CGF), SavedOutermostConditional(CGF.OutermostConditional) {</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>       CGF.OutermostConditional = 0;</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>     }</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> </div>
+<div class="line"><a name="l00649"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html#a9cf59ac39ab91df9a65db8661df94dee">  649</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1StmtExprEvaluation.html#a9cf59ac39ab91df9a65db8661df94dee">~StmtExprEvaluation</a>() {</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>       CGF.OutermostConditional = SavedOutermostConditional;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aebc753533aefb02b31dc6d12b1fb6e06">EnsureInsertPoint</a>();</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>     }</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>   };</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment"></span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">  /// An object which temporarily prevents a value from being</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">  /// destroyed by aggressive peephole optimizations that assume that</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">  /// all uses of a value have been realized in the IR.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html">  658</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html">PeepholeProtection</a> {</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     llvm::Instruction *Inst;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html#a7e2731d294933d00bb5ff1c008fbb959">  660</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00663"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html#a55bf7cb2a1c693edd292857c902a1917">  663</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html#a55bf7cb2a1c693edd292857c902a1917">PeepholeProtection</a>() : Inst(0) {}</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   };</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment"></span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment">  /// A non-RAII class containing all the information about a bound</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment">  /// opaque value.  OpaqueValueMapping, below, is a RAII wrapper for</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">  /// this which makes individual mappings very simple; using this</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">  /// class directly is useful when you have a variable number of</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment">  /// opaque values or don't want the RAII functionality for some</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">  /// reason.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">  672</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> {</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *OpaqueValue;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="keywordtype">bool</span> BoundLValue;</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1PeepholeProtection.html">CodeGenFunction::PeepholeProtection</a> Protection;</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>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#ade16e97a75f628144dbbe67633c05ac0">OpaqueValueMappingData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *ov,</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>                            <span class="keywordtype">bool</span> boundLValue)</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>       : OpaqueValue(ov), BoundLValue(boundLValue) {}</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00681"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#ade16e97a75f628144dbbe67633c05ac0">  681</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#ade16e97a75f628144dbbe67633c05ac0">OpaqueValueMappingData</a>() : OpaqueValue(0) {}</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> </div>
+<div class="line"><a name="l00683"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">  683</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">shouldBindAsLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>) {</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>       <span class="comment">// gl-values should be bound as l-values for obvious reasons.</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>       <span class="comment">// Records should be bound as l-values because IR generation</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>       <span class="comment">// always keeps them in memory.  Expressions of function type</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>       <span class="comment">// act exactly like l-values but are formally required to be</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>       <span class="comment">// r-values in C.</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>       <span class="keywordflow">return</span> expr-><a class="code" href="classclang_1_1Expr.html#ae5788e69a4c1d2d1b1e5ddaa4d525e22">isGLValue</a>() ||</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>              expr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>() ||</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>              expr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#af0ae1f40cbbc07fabfefc86af91072e3">isFunctionType</a>();</div>
+<div class="line"><a name="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"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">  694</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">bind</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *ov,</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *e) {</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">shouldBindAsLValue</a>(ov))</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">bind</a>(CGF, ov, CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(e));</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">bind</a>(CGF, ov, CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab55962fe5983453b24c64f76125c760c">EmitAnyExpr</a>(e));</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>     }</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a22f931b913b01ad1db066a662eb435ef">  702</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">bind</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *ov,</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> &lv) {</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>       assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">shouldBindAsLValue</a>(ov));</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>       CGF.OpaqueLValues.insert(std::make_pair(ov, lv));</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#ade16e97a75f628144dbbe67633c05ac0">OpaqueValueMappingData</a>(ov, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>     }</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span> </div>
+<div class="line"><a name="l00710"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a595940c0092cae93dc931531ba9715e1">  710</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">bind</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *ov,</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> &rv) {</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>       assert(!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">shouldBindAsLValue</a>(ov));</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>       CGF.OpaqueRValues.insert(std::make_pair(ov, rv));</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>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> <a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a>(ov, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>       <span class="comment">// Work around an extremely aggressive peephole optimization in</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>       <span class="comment">// EmitScalarConversion which assumes that all other uses of a</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>       <span class="comment">// value are extant.</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>       data.Protection = CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a266f6c550d66c7e46fc8c2d80363ee4a">protectFromPeepholes</a>(rv);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>       <span class="keywordflow">return</span> <a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>     }</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> </div>
+<div class="line"><a name="l00726"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a8d6e2b146de12274cafba8ec5e750daf">  726</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a8d6e2b146de12274cafba8ec5e750daf">isValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> OpaqueValue != 0; }</div>
+<div class="line"><a name="l00727"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aebfdacff317415fbab38773751438546">  727</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aebfdacff317415fbab38773751438546">clear</a>() { OpaqueValue = 0; }</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span> </div>
+<div class="line"><a name="l00729"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aa91665f2632071de9bf4b9bd8bfe4b17">  729</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aa91665f2632071de9bf4b9bd8bfe4b17">unbind</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF) {</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>       assert(OpaqueValue && <span class="stringliteral">"no data to unbind!"</span>);</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span> </div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>       <span class="keywordflow">if</span> (BoundLValue) {</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>         CGF.OpaqueLValues.erase(OpaqueValue);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>         CGF.OpaqueRValues.erase(OpaqueValue);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>         CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a339c7fc5d4646bec4679efc40c7b8c8b">unprotectFromPeepholes</a>(Protection);</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>     }</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>   };</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment"></span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">  /// An RAII object to set (and then clear) a mapping for an OpaqueValueExpr.</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html">  742</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html" title="An RAII object to set (and then clear) a mapping for an OpaqueValueExpr.">OpaqueValueMapping</a> {</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF;</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a> Data;</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> </div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a7266c5c8ac67da5c26de2aba6febc787">  747</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a7266c5c8ac67da5c26de2aba6febc787">shouldBindAsLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>) {</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a683a2935cc385441e0ffedfb71f9ee95">OpaqueValueMappingData::shouldBindAsLValue</a>(expr);</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>     }</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment"></span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">    /// Build the opaque value mapping for the given conditional</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">    /// operator if it's the GNU ?: extension.  This is a common</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">    /// enough pattern that the convenience operator is really</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">    /// helpful.</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a2e3fc3cd18401b4e8dd46370756d5a47">  756</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a2e3fc3cd18401b4e8dd46370756d5a47">OpaqueValueMapping</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1AbstractConditionalOperator.html">AbstractConditionalOperator</a> *op) : CGF(CGF) {</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>       <span class="keywordflow">if</span> (isa<ConditionalOperator>(op))</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>         <span class="comment">// Leave Data empty.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryConditionalOperator.html">BinaryConditionalOperator</a> *e = cast<BinaryConditionalOperator>(op);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>       Data = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aea76f31fb55a76d2f3b2e1d0fcb6b11d">OpaqueValueMappingData::bind</a>(CGF, e-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a4bc96fbd822603ed2d3de2a02d2313b6" title="getOpaqueValue - Return the opaque value placeholder.">getOpaqueValue</a>(),</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>                                           e-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a95f4d6dc559c9c19c86fade8b3114393" title="getCommon - Return the common expression, written to the left of the condition. The opaque value will...">getCommon</a>());</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>     }</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> </div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a92f406cdd6e9a6f5025727b36c3b6bef">  767</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a2e3fc3cd18401b4e8dd46370756d5a47">OpaqueValueMapping</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *opaqueValue,</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>                        <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue)</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>       : CGF(CGF), Data(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a>::bind(CGF, opaqueValue, lvalue)) {</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>     }</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> </div>
+<div class="line"><a name="l00773"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a821cd89695a53f9cf8ac3879f30d84a7">  773</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a2e3fc3cd18401b4e8dd46370756d5a47">OpaqueValueMapping</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF,</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *opaqueValue,</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>                        <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> rvalue)</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>       : CGF(CGF), Data(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html">OpaqueValueMappingData</a>::bind(CGF, opaqueValue, rvalue)) {</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</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"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a66b92cd268638057ba1f90003ae26f0d">  779</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a66b92cd268638057ba1f90003ae26f0d">pop</a>() {</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>       Data.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aa91665f2632071de9bf4b9bd8bfe4b17">unbind</a>(CGF);</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>       Data.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aebfdacff317415fbab38773751438546">clear</a>();</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     }</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
+<div class="line"><a name="l00784"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a71b854f71c17b65fff3ba02f349765b2">  784</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a71b854f71c17b65fff3ba02f349765b2">~OpaqueValueMapping</a>() {</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>       <span class="keywordflow">if</span> (Data.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#a8d6e2b146de12274cafba8ec5e750daf">isValid</a>()) Data.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMappingData.html#aa91665f2632071de9bf4b9bd8bfe4b17">unbind</a>(CGF);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>     }</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>   };</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">  /// getByrefValueFieldNumber - Given a declaration, returns the LLVM field</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">  /// number that holds the value.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1283abe4c872adee44e04dedbdf821a3">getByRefValueLLVMField</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *VD) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment"></span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">  /// BuildBlockByrefAddress - Computes address location of the</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">  /// variable which is declared as __block.</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</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#ac3e08084dc8583927096aac5182a4aa1">BuildBlockByrefAddress</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *BaseAddr,</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *V);</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   <a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html">CGDebugInfo</a> *DebugInfo;</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="keywordtype">bool</span> DisableDebugInfo;</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="comment"></span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="comment">  /// DidCallStackSave - Whether llvm.stacksave has been called. Used to avoid</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="comment">  /// calling llvm.stacksave for multiple VLAs in the same scope.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="comment"></span>  <span class="keywordtype">bool</span> DidCallStackSave;</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment"></span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">  /// IndirectBranch - The first time an indirect goto is seen we create a block</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">  /// with an indirect branch.  Every time we see the address of a label taken,</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> <span class="comment">  /// we add the label to the indirect goto.  Every subsequent indirect goto is</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span> <span class="comment">  /// codegen'd as a jump to the IndirectBranch's basic block.</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span> <span class="comment"></span>  llvm::IndirectBrInst *IndirectBranch;</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> <span class="comment"></span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment">  /// LocalDeclMap - This keeps track of the LLVM allocas or globals for local C</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">  /// decls.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment"></span>  <span class="keyword">typedef</span> llvm::DenseMap<const Decl*, llvm::Value*> DeclMapTy;</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   DeclMapTy LocalDeclMap;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment"></span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">  /// LabelMap - This keeps track of the LLVM basic block for each C label.</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment"></span>  llvm::DenseMap<const LabelDecl*, JumpDest> LabelMap;</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span> </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   <span class="comment">// BreakContinueStack - This keeps track of where break and continue</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>   <span class="comment">// statements should jump to.</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>   <span class="keyword">struct </span>BreakContinue {</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>     BreakContinue(JumpDest Break, JumpDest Continue)</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>       : BreakBlock(Break), ContinueBlock(Continue) {}</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>     JumpDest BreakBlock;</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>     JumpDest ContinueBlock;</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>   };</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>   SmallVector<BreakContinue, 8> BreakContinueStack;</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment"></span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">  /// SwitchInsn - This is nearest current switch instruction. It is null if</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment">  /// current context is not in a switch.</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment"></span>  llvm::SwitchInst *SwitchInsn;</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment"></span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">  /// CaseRangeBlock - This block holds if condition check for last case</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">  /// statement range in current switch instruction.</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment"></span>  llvm::BasicBlock *CaseRangeBlock;</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment"></span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="comment">  /// OpaqueLValues - Keeps track of the current set of opaque value</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">  /// expressions.</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment"></span>  llvm::DenseMap<const OpaqueValueExpr *, LValue> OpaqueLValues;</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>   llvm::DenseMap<const OpaqueValueExpr *, RValue> OpaqueRValues;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> </div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>   <span class="comment">// VLASizeMap - This keeps track of the associated size for each VLA type.</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>   <span class="comment">// We track this by the size expression rather than the type itself because</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>   <span class="comment">// in certain situations, like a const qualifier applied to an VLA typedef,</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>   <span class="comment">// multiple VLA types can share the same size expression.</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>   <span class="comment">// FIXME: Maybe this could be a stack of maps that is pushed/popped as we</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>   <span class="comment">// enter/leave scopes.</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   llvm::DenseMap<const Expr*, llvm::Value*> VLASizeMap;</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment"></span></div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment">  /// A block containing a single 'unreachable' instruction.  Created</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">  /// lazily by getUnreachableBlock().</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment"></span>  llvm::BasicBlock *UnreachableBlock;</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment"></span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">  /// Counts of the number return expressions in the function.</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumReturnExprs;</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment"></span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">  /// Count the number of simple (constant) return expressions in the function.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumSimpleReturnExprs;</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment"></span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">  /// The last regular (non-return) debug location (breakpoint) in the function.</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment"></span>  SourceLocation LastStopPoint;</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> </div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">  /// A scope within which we are constructing the fields of an object which</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">  /// might use a CXXDefaultInitExpr. This stashes away a 'this' value to use</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">  /// if we need to evaluate a CXXDefaultInitExpr within the evaluation.</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html">  868</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html">FieldConstructionScope</a> {</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00870"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html#a1795e828991dd6c9bb78ef4bcf85cb65">  870</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html#a1795e828991dd6c9bb78ef4bcf85cb65">FieldConstructionScope</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This)</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>         : CGF(CGF), OldCXXDefaultInitExprThis(CGF.CXXDefaultInitExprThis) {</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>       CGF.CXXDefaultInitExprThis = This;</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>     }</div>
+<div class="line"><a name="l00874"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html#a91dac9b2bc3a0d30e9af3ed356708090">  874</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1FieldConstructionScope.html#a91dac9b2bc3a0d30e9af3ed356708090">~FieldConstructionScope</a>() {</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>       CGF.CXXDefaultInitExprThis = OldCXXDefaultInitExprThis;</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     }</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span> </div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF;</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *OldCXXDefaultInitExprThis;</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   };</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="comment"></span></div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="comment">  /// The scope of a CXXDefaultInitExpr. Within this scope, the value of 'this'</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="comment">  /// is overridden to be the object under construction.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html">  885</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html">CXXDefaultInitExprScope</a> {</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00887"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a606fc6555c129a2857d7144e2eb15927">  887</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a606fc6555c129a2857d7144e2eb15927">CXXDefaultInitExprScope</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a5254cf0b9e0f7f6fdf43b06f1e8133d6">CGF</a>)</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>         : CGF(CGF), <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#aa6911db733787baed726dfc47fc645ff">OldCXXThisValue</a>(CGF.CXXThisValue) {</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>       CGF.CXXThisValue = CGF.CXXDefaultInitExprThis;</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>     }</div>
+<div class="line"><a name="l00891"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a4a9d3440c1bfde9ec93f9a0e73d85a4c">  891</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a4a9d3440c1bfde9ec93f9a0e73d85a4c">~CXXDefaultInitExprScope</a>() {</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a5254cf0b9e0f7f6fdf43b06f1e8133d6">CGF</a>.CXXThisValue = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#aa6911db733787baed726dfc47fc645ff">OldCXXThisValue</a>;</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>     }</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span> </div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00896"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a5254cf0b9e0f7f6fdf43b06f1e8133d6">  896</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#a5254cf0b9e0f7f6fdf43b06f1e8133d6">CGF</a>;</div>
+<div class="line"><a name="l00897"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#aa6911db733787baed726dfc47fc645ff">  897</a></span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1CXXDefaultInitExprScope.html#aa6911db733787baed726dfc47fc645ff">OldCXXThisValue</a>;</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>   };</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span> </div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment">  /// CXXThisDecl - When generating code for a C++ member function,</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> <span class="comment">  /// this will hold the implicit 'this' declaration.</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *CXXABIThisDecl;</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CXXABIThisValue;</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CXXThisValue;</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span> <span class="comment"></span></div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment">  /// The value of 'this' to use when evaluating CXXDefaultInitExprs within</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">  /// this expression.</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span> <span class="comment"></span>  <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CXXDefaultInitExprThis;</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> <span class="comment"></span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span> <span class="comment">  /// CXXStructorImplicitParamDecl - When generating code for a constructor or</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span> <span class="comment">  /// destructor, this will hold the implicit argument (e.g. VTT).</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *CXXStructorImplicitParamDecl;</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *CXXStructorImplicitParamValue;</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span> <span class="comment"></span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="comment">  /// OutermostConditional - Points to the outermost active</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span> <span class="comment">  /// conditional control.  This is used so that we know if a</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span> <span class="comment">  /// temporary should be destroyed conditionally.</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConditionalEvaluation.html" title="An object to manage conditionally-evaluated expressions.">ConditionalEvaluation</a> *OutermostConditional;</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment"></span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">  /// The current lexical scope.</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1LexicalScope.html">LexicalScope</a> *CurLexicalScope;</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span> <span class="comment"></span></div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment">  /// The current source location that should be used for exception</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">  /// handling code.</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment"></span>  <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> CurEHLocation;</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="comment"></span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="comment">  /// ByrefValueInfoMap - For each __block variable, contains a pair of the LLVM</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="comment">  /// type as well as the field number that contains the actual data.</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment"></span>  llvm::DenseMap<<span class="keyword">const</span> <a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *, std::pair<llvm::Type *,</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>                                               <span class="keywordtype">unsigned</span>> > ByRefValueInfo;</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>   llvm::BasicBlock *TerminateLandingPad;</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>   llvm::BasicBlock *TerminateHandler;</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>   llvm::BasicBlock *TrapBB;</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment"></span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">  /// Add a kernel metadata node to the named metadata node 'opencl.kernels'.</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">  /// In the kernel metadata node, reference the kernel function and metadata </span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment">  /// nodes for its optional attribute qualifiers (OpenCL 1.1 6.7.2):</span></div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="comment">  /// - A node for the vec_type_hint(<type>) qualifier contains string</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span> <span class="comment">  ///   "vec_type_hint", an undefined value of the <type> data type,</span></div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span> <span class="comment">  ///   and a Boolean that is true if the <type> is integer and signed.</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span> <span class="comment">  /// - A node for the work_group_size_hint(X,Y,Z) qualifier contains string </span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> <span class="comment">  ///   "work_group_size_hint", and three 32-bit integers X, Y and Z.</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">  /// - A node for the reqd_work_group_size(X,Y,Z) qualifier contains string </span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span> <span class="comment">  ///   "reqd_work_group_size", and three 32-bit integers X, Y and Z.</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment"></span>  <span class="keywordtype">void</span> EmitOpenCLKernelMetadata(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD, </div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>                                 llvm::Function *Fn);</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="keyword">public</span>:</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html">CodeGenModule</a> &cgm, <span class="keywordtype">bool</span> suppressNewContext=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a72cd224c31a417bec29dedefdfbfb659">~CodeGenFunction</a>();</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span> </div>
+<div class="line"><a name="l00954"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">  954</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenTypes.html">CodeGenTypes</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5120facc67b842511aeefb15ece6407d">getTypes</a>()<span class="keyword"> const </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#a1325760f10142c1da8521b53734858ef">getTypes</a>(); }</div>
+<div class="line"><a name="l00955"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">  955</a></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="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>()<span class="keyword"> const </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#a4a62f428c7e3d80e67885383b9263054">getContext</a>(); }</div>
+<div class="line"><a name="l00956"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aae2a6ad5f0ab2ff7b94e717a18352512">  956</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html">CGDebugInfo</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aae2a6ad5f0ab2ff7b94e717a18352512">getDebugInfo</a>() { </div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>     <span class="keywordflow">if</span> (DisableDebugInfo) </div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>       <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>     <span class="keywordflow">return</span> DebugInfo; </div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>   }</div>
+<div class="line"><a name="l00961"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae31c3d7e89f78e571d19a0479fc67d70">  961</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae31c3d7e89f78e571d19a0479fc67d70">disableDebugInfo</a>() { DisableDebugInfo = <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00962"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a900fb594a2263d16bf51123cb2c0c865">  962</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a900fb594a2263d16bf51123cb2c0c865">enableDebugInfo</a>() { DisableDebugInfo = <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span> </div>
+<div class="line"><a name="l00964"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2d4331f8070be31c4042da24b3a98169">  964</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2d4331f8070be31c4042da24b3a98169">shouldUseFusedARCCalls</a>() {</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</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#a054eb00391038519d37236032f1ebfe5">getCodeGenOpts</a>().OptimizationLevel == 0;</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>   }</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> </div>
+<div class="line"><a name="l00968"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">  968</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>()<span class="keyword"> const </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#abae1594027ce284ce5b7f06c66d24ea7">getLangOpts</a>(); }</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span> <span class="comment"></span></div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span> <span class="comment">  /// Returns a pointer to the function's exception object and selector slot,</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment">  /// which is assigned in every landing pad.</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</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#adab463b751b967f677fd1f8163255557">getExceptionSlot</a>();</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8e8ee3a8969ff763b2513a73cbd40d3e">getEHSelectorSlot</a>();</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment"></span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">  /// Returns the contents of the function's exception object and selector</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">  /// slots.</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</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#a15e7d15f0497bb9b0a07d0d6dae1bf53">getExceptionFromSlot</a>();</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a15aa5c7d5dcd706cc67805c74820b4d9">getSelectorFromSlot</a>();</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> </div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa45b27474b994180eefebad5b1e5632d">getNormalCleanupDestSlot</a>();</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> </div>
+<div class="line"><a name="l00982"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a1c2350f7718da5bdbd856b6c302d3">  982</a></span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47a1c2350f7718da5bdbd856b6c302d3">getUnreachableBlock</a>() {</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>     <span class="keywordflow">if</span> (!UnreachableBlock) {</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>       UnreachableBlock = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="stringliteral">"unreachable"</span>);</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>       <span class="keyword">new</span> llvm::UnreachableInst(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(), UnreachableBlock);</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>     }</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>     <span class="keywordflow">return</span> UnreachableBlock;</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>   }</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> </div>
+<div class="line"><a name="l00990"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab7586d3809e481824b31df7baf09bef7">  990</a></span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab7586d3809e481824b31df7baf09bef7">getInvokeDest</a>() {</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9b8530f063bc2736b570c0b56a705d37">EHStack</a>.<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a7ce729e05a89eccfc86ca4d73f2697c0">requiresLandingPad</a>()) <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1bf89b708d8ad895320b1c8664d775b7">getInvokeDestImpl</a>();</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   }</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span> </div>
+<div class="line"><a name="l00995"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a99a31085fa0c84b27925137b3f6f6b97">  995</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a99a31085fa0c84b27925137b3f6f6b97">getTarget</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac9d18f8dc8957bb893c9cadc67d23fa4">Target</a>; }</div>
+<div class="line"><a name="l00996"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">  996</a></span>   llvm::LLVMContext &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>() { <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#a6c8cff399ad98c730cce0907b1acd44e">getLLVMContext</a>(); }</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> </div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   <span class="comment">//                                  Cleanups</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> </div>
+<div class="line"><a name="l01002"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1"> 1002</a></span>   <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <a class="code" href="classclang_1_1QualType.html">QualType</a> ty);</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="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e775e1217a397d86340718d5edf5a2">pushIrregularPartialArrayCleanup</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *arrayBegin,</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>                                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *arrayEndPointer,</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>                                         <a class="code" href="classclang_1_1QualType.html">QualType</a> elementType,</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>                                         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer);</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a21c0cccb40980a1b634413a4bce5b277">pushRegularPartialArrayCleanup</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *arrayBegin,</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>                                       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *arrayEnd,</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>                                       <a class="code" href="classclang_1_1QualType.html">QualType</a> elementType,</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>                                       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer);</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> </div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a642101502fd1205cd71b9f365695d0fb">pushDestroy</a>(<a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> dtorKind,</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>                    <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <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="l01015"></a><span class="lineno"> 1015</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8b6fda20a3bbdf536eb02b51af2f1007">pushEHDestroy</a>(<a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> dtorKind,</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>                      <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <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="l01017"></a><span class="lineno"> 1017</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a642101502fd1205cd71b9f365695d0fb">pushDestroy</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <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="l01018"></a><span class="lineno"> 1018</span>                    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer, <span class="keywordtype">bool</span> useEHCleanupForArray);</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#acaa9ec18a2b1a90ccb07a5f379b5b9d8">pushLifetimeExtendedDestroy</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr,</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</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>, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer,</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>                                    <span class="keywordtype">bool</span> useEHCleanupForArray);</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9aaad21865e78a4de5b46182c55f5a35">emitDestroy</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <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>, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer,</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>                    <span class="keywordtype">bool</span> useEHCleanupForArray);</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a19d2aef354fb23c99bc5dfb9c3aa8b10">generateDestroyHelper</a>(llvm::Constant *addr, <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="l01025"></a><span class="lineno"> 1025</span>                                         <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer,</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>                                         <span class="keywordtype">bool</span> useEHCleanupForArray,</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD);</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac23541801eeae0273a8b6c468496baf1">emitArrayDestroy</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *begin, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *end,</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</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>, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *destroyer,</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>                         <span class="keywordtype">bool</span> checkZeroLength, <span class="keywordtype">bool</span> useEHCleanup);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> </div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a581121a1e37fc0e596c24c58f93b0e12">getDestroyer</a>(<a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> destructionKind);</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment"></span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">  /// Determines whether an EH cleanup is required to destroy a type</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">  /// with the given destruction kind.</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab5de8b85a1f54e0dd9d5dce5527faf23"> 1036</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab5de8b85a1f54e0dd9d5dce5527faf23">needsEHCleanup</a>(<a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>) {</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>     <span class="keywordflow">switch</span> (kind) {</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfca60f4838ac0cd80cff599fc5d88f7c272">QualType::DK_none</a>:</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfca00b3c96ef35f8edc7a6fef32e3b89285">QualType::DK_cxx_destructor</a>:</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfcaa70d10e9eca0ce9bedb369a4e4128654">QualType::DK_objc_weak_lifetime</a>:</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().Exceptions;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfcad585d701cc19b3a22c6d3609a81379ad">QualType::DK_objc_strong_lifetime</a>:</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7f36282ddf1577e2efd3a888053b2f87">getLangOpts</a>().Exceptions &&</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</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>().ObjCAutoRefCountExceptions;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>     }</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>     llvm_unreachable(<span class="stringliteral">"bad destruction kind"</span>);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>   }</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> </div>
+<div class="line"><a name="l01050"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab7774ca5dab3b221895fcbf1529084f5"> 1050</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab7774ca5dab3b221895fcbf1529084f5">getCleanupKind</a>(<a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>) {</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>     <span class="keywordflow">return</span> (<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab5de8b85a1f54e0dd9d5dce5527faf23">needsEHCleanup</a>(kind) ? <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a> : <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">NormalCleanup</a>);</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>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>   <span class="comment">//                                  Objective-C</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9e3e18864e093d98be0599cea582b049">GenerateObjCMethod</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD);</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1e6a8ad280ba3d23353aedd73b657520">StartObjCMethod</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD,</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *CD,</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</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="l01063"></a><span class="lineno"> 1063</span> <span class="comment"></span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">  /// GenerateObjCGetter - Synthesize an Objective-C property getter function.</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</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.">GenerateObjCGetter</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID);</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba40389a4444132f15f7c4f17576684b">generateObjCGetterBody</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *classImpl,</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl,</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *GetterMothodDecl,</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>                               llvm::Constant *AtomicHelperFn);</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a44ccfb1a455d7b83bb25dbdfef78d554">GenerateObjCCtorDtorMethod</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>                                   <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD, <span class="keywordtype">bool</span> ctor);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment"></span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">  /// GenerateObjCSetter - Synthesize an Objective-C property setter function</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment">  /// for the given property.</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</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.">GenerateObjCSetter</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMP,</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID);</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7db283a16fbbb45515d9cf5b92dd9e9a">generateObjCSetterBody</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *classImpl,</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *propImpl,</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>                               llvm::Constant *AtomicHelperFn);</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a50bdfa19d81f398178bdbf0b6fb4b99f">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="l01083"></a><span class="lineno"> 1083</span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab4a57977feb93815f431a555c5f12ca9">IvarTypeWithAggrGCObjects</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>   <span class="comment">//                                  Block Bits</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> </div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8e4662eb5ee29563d078f85ca0dcdeaa" title="Emit a block literal expression in the current function.">EmitBlockLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *);</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8e4662eb5ee29563d078f85ca0dcdeaa" title="Emit a block literal expression in the current function.">EmitBlockLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> &Info);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a91700db5b7297f030b9a256e81550705" title="Destroy a chain of block layouts.">destroyBlockInfos</a>(<a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> *info);</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0231ebdc9ecd6ada192daab733d3de6f">BuildDescriptorBlockDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *,</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>                                            <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> &Info,</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>                                            llvm::StructType *,</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>                                            llvm::Constant *BlockVarLayout);</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a487ea0992d8771ef1251467abaa1e034">GenerateBlockFunction</a>(<a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD,</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> &Info,</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>                                         <span class="keyword">const</span> DeclMapTy &ldm,</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>                                         <span class="keywordtype">bool</span> IsLambdaConversionToBlock);</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> </div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4d2b73ad91b9fc88351130abe4023d1e">GenerateCopyHelperFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> &blockInfo);</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aeb5acf2d17719ac28b05e9f1e2d42003">GenerateDestroyHelperFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGBlockInfo.html" title="CGBlockInfo - Information to generate a block literal.">CGBlockInfo</a> &blockInfo);</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac0a00459dc6f8aba54a631c7aff1d5c">GenerateObjCAtomicSetterCopyHelperFunction</a>(</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>                                              <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID);</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac55c2c0a2d817ee537538746501571af">GenerateObjCAtomicGetterCopyHelperFunction</a>(</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>                                              <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *PID);</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a685dc98f4f20326006ae11659438efe0">EmitBlockCopyAndAutorelease</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Block, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0f2692ac604afa612bfa3116e02f1222">BuildBlockRelease</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DeclPtr, <a class="code" href="classclang_1_1CodeGen_1_1BlockFieldFlags.html">BlockFieldFlags</a> flags);</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>   <span class="keyword">class </span>AutoVarEmission;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0dbc38c9be2f80c325ff51f9c7e7723e">emitByrefStructureInit</a>(<span class="keyword">const</span> AutoVarEmission &emission);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a03c21590fdfa2d7f916a541eaaf48ede">enterByrefCleanup</a>(<span class="keyword">const</span> AutoVarEmission &emission);</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> </div>
+<div class="line"><a name="l01117"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#addb7d18651ba1c566c88fa4eddaa680c"> 1117</a></span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#addb7d18651ba1c566c88fa4eddaa680c">LoadBlockStruct</a>() {</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>     assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a802e7c33b470a41e5dc7a0ac075d9b6e">BlockPointer</a> && <span class="stringliteral">"no block pointer set!"</span>);</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a802e7c33b470a41e5dc7a0ac075d9b6e">BlockPointer</a>;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>   }</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac27d50eb49bfaf1805ff51db7b6af00">AllocateBlockCXXThisPointer</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXThisExpr.html" title="Represents the this expression in C++.">CXXThisExpr</a> *E);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6eff70ea5ad278e73ba2f22c41c8e7cf">AllocateBlockDecl</a>(<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> *E);</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a58d27be2d336b0dd7499df659ae75f8b">GetAddrOfBlockDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *var, <span class="keywordtype">bool</span> ByRef);</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>   llvm::Type *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47f05a33d25eba0574176c03c7d96307">BuildByRefType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *var);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1dd5a4b71539ee048882c256c396d5dc">GenerateCode</a>(<a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, llvm::Function *Fn,</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>                     <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo);</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a923f7d7b4fbe87ade9f82f39ebf804a9">StartFunction</a>(<a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD,</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>                      <a class="code" href="classclang_1_1QualType.html">QualType</a> RetTy,</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>                      llvm::Function *Fn,</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>                      <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo,</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>                      <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</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="l01135"></a><span class="lineno"> 1135</span> </div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a49e1139f732e8c69bd7bea32684ee8e5" title="EmitConstructorBody - Emits the body of the current constructor.">EmitConstructorBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8cc40069126da59c15741df0641b5837" title="EmitDestructorBody - Emits the body of the current destructor.">EmitDestructorBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac31b0dae8fad258ae41ff3a36d09a761">emitImplicitAssignmentOperatorBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae2f0f77723b72f464e07ab43db18f929">EmitFunctionBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body);</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2e32bbc2f2bf59f461f5ddb3e29ebc57">EmitForwardingCallToLambda</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *LambdaCallOperator,</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>                                   <a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &CallArgs);</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6b2d8e96d85fb97af70adfb5c8472428">EmitLambdaToBlockPointerBody</a>(<a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac7ebd4960f163e94a358a9db9dcdea10">EmitLambdaBlockInvokeBody</a>();</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa9ffc2e04dd440631250e4ee41f28b35">EmitLambdaDelegatingInvokeBody</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD);</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3b8b2fd8e45e8f0f0607bf6fa0cd7072">EmitLambdaStaticInvokeFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD);</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"></span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">  /// EmitReturnBlock - Emit the unified return block, trying to avoid its</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">  /// emission when possible.</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a91a3c2a2b856aea8bc676243d8bbd209">EmitReturnBlock</a>();</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"></span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">  /// FinishFunction - Complete IR generation of the current function. It is</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">  /// legal to call this function even if there is no current insertion point.</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adefc925f9c3921cc89f39663e2b2379e">FinishFunction</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> EndLoc=<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="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7d04132067fa7d435273f766b49f4278">StartThunk</a>(llvm::Function *Fn, <a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo);</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8b46ef8f96829dea3ce6853177472387">EmitCallAndReturnForThunk</a>(<a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>                                  <span class="keyword">const</span> <a class="code" href="structclang_1_1ThunkInfo.html" title="The this pointer adjustment as well as an optional return adjustment for a thunk.">ThunkInfo</a> *Thunk);</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"></span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">  /// GenerateThunk - Generate a thunk for the given method.</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac59f94d5f2e6fd11c04322b2872e2aff" title="GenerateThunk - Generate a thunk for the given method.">GenerateThunk</a>(llvm::Function *Fn, <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo,</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>                      <a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, <span class="keyword">const</span> <a class="code" href="structclang_1_1ThunkInfo.html" title="The this pointer adjustment as well as an optional return adjustment for a thunk.">ThunkInfo</a> &Thunk);</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adef6f34dcd5ab701ac630d93e47f5a83">GenerateVarArgsThunk</a>(llvm::Function *Fn, <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo,</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>                             <a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, <span class="keyword">const</span> <a class="code" href="structclang_1_1ThunkInfo.html" title="The this pointer adjustment as well as an optional return adjustment for a thunk.">ThunkInfo</a> &Thunk);</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> </div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9448604403768d2ad9d1b46a6538e1dd">EmitCtorPrologue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *CD, <a class="code" href="namespaceclang.html#a07c209a701587314a04d68c934e5a16d" title="C++ constructor types.">CXXCtorType</a> <a class="code" href="classclang_1_1Type.html">Type</a>,</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>                         <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> </div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac2b20cd86aba5f55c93e263aa9f02c6c">EmitInitializerForField</a>(<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LHS, <a class="code" href="classclang_1_1Expr.html">Expr</a> *Init,</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>                                <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<VarDecl *></a> ArrayIndexes);</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"></span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">  /// InitializeVTablePointer - Initialize the vtable pointer of the given</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">  /// subobject.</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a00887eab2838af6f08b5529ce61936e8">InitializeVTablePointer</a>(<a class="code" href="classclang_1_1BaseSubobject.html">BaseSubobject</a> <a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>                                <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *NearestVBase,</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>                                <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> OffsetFromNearestVBase,</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>                                <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *VTableClass);</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </div>
+<div class="line"><a name="l01182"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a610e532dfc4005eda513ac7c3ff43645"> 1182</a></span>   <span class="keyword">typedef</span> llvm::SmallPtrSet<const CXXRecordDecl *, 4> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a610e532dfc4005eda513ac7c3ff43645">VisitedVirtualBasesSetTy</a>;</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad8649c0f580ad9c60f9331dc3c39a5b7">InitializeVTablePointers</a>(<a class="code" href="classclang_1_1BaseSubobject.html">BaseSubobject</a> <a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *NearestVBase,</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>                                 <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> OffsetFromNearestVBase,</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>                                 <span class="keywordtype">bool</span> BaseIsNonVirtualPrimaryBase,</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *VTableClass,</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>                                 VisitedVirtualBasesSetTy& VBases);</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad8649c0f580ad9c60f9331dc3c39a5b7">InitializeVTablePointers</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *ClassDecl);</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"></span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">  /// GetVTablePtr - Return the Value of the vtable pointer member pointed</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">  /// to by This.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</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#ad121e5b11699b9db4078d97eb63b3272">GetVTablePtr</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This, llvm::Type *Ty);</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> </div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment"></span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment">  /// CanDevirtualizeMemberFunctionCalls - Checks whether virtual calls on given</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">  /// expr can be devirtualized.</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a383e8c56f76a6fa5d2c665538b148826">CanDevirtualizeMemberFunctionCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>                                          <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD);</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"></span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">  /// EnterDtorCleanups - Enter the cleanups necessary to complete the</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment">  /// given phase of destruction for a destructor.  The end result</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">  /// should call destructors on members and base classes in reverse</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">  /// order of their construction.</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a756a53dcc7e12790d102700e4fd97299">EnterDtorCleanups</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *Dtor, <a class="code" href="namespaceclang.html#a8ce1c62f474552f6cfc7c340e573e157" title="C++ destructor types.">CXXDtorType</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"></span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">  /// ShouldInstrumentFunction - Return true if the current function should be</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">  /// instrumented with __cyg_profile_func_* calls</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a90f6121edad49db9e3afdc39ad8ff613">ShouldInstrumentFunction</a>();</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"></span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">  /// EmitFunctionInstrumentation - Emit LLVM code to call the specified</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment">  /// instrumentation function with the current function and the call site, if</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment">  /// function instrumentation is enabled.</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a8a70ab05393f55c27839907d51cf7e">EmitFunctionInstrumentation</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fn);</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"></span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">  /// EmitMCountInstrumentation - Emit call to .mcount.</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a93f8049338984e2d2146d21a7d386bd1" title="EmitMCountInstrumentation - Emit call to .mcount.">EmitMCountInstrumentation</a>();</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"></span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">  /// EmitFunctionProlog - Emit the target specific LLVM code to load the</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment">  /// arguments for the given function. This is also responsible for naming the</span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment">  /// LLVM function arguments.</span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aaa3ade2417cb0d44418b2372d9ac65e6">EmitFunctionProlog</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="l01224"></a><span class="lineno"> 1224</span>                           llvm::Function *Fn,</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"></span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">  /// EmitFunctionEpilog - Emit the target specific LLVM code to return the</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment">  /// given temporary.</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12afed68808fd6a54f5182855f36510d">EmitFunctionEpilog</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FI, <span class="keywordtype">bool</span> EmitRetDbgLoc,</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>                           <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> EndLoc);</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"></span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">  /// EmitStartEHSpec - Emit the start of the exception spec.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8c4bc8c71d85fdbea3742db674f7d070" title="EmitStartEHSpec - Emit the start of the exception spec.">EmitStartEHSpec</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"></span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">  /// EmitEndEHSpec - Emit the end of the exception spec.</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abaef8cdba9d05a48ed06d5320e6c4ed8" title="EmitEndEHSpec - Emit the end of the exception spec.">EmitEndEHSpec</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"></span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment">  /// getTerminateLandingPad - Return a landing pad that just calls terminate.</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a87ae350b90a6937825e686791f02a48e" title="getTerminateLandingPad - Return a landing pad that just calls terminate.">getTerminateLandingPad</a>();</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"></span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment">  /// getTerminateHandler - Return a handler (not a landing pad, just</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment">  /// a catch handler) that just calls terminate.  This is used when</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment">  /// a terminate scope encloses a try.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a689bc2db6a643e6092fa2be3cd108031">getTerminateHandler</a>();</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> </div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>   llvm::Type *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab96689ae1b68ca38dd3c382f54bcbcd7">ConvertTypeForMem</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   llvm::Type *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ccd343226e5bdfd99c6017f0ddfda20">ConvertType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l01248"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac681c389b7699f93d76f4a6021b9cee2"> 1248</a></span>   llvm::Type *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac681c389b7699f93d76f4a6021b9cee2">ConvertType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *T) {</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>     <span class="keywordflow">return</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>().getTypeDeclType(T));</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>   }</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"></span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">  /// LoadObjCSelf - Load the value of self. This function is only valid while</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment">  /// generating code for an Objective-C method.</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</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#a9e29d062b0663a0ffa00ac18ef73c0d5">LoadObjCSelf</a>();</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"></span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">  /// TypeOfSelfObject - Return type of object that this self represents.</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"></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.">TypeOfSelfObject</a>();</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"></span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">  /// hasAggregateLLVMType - Return true if the specified AST type will map into</span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">  /// an aggregate LLVM type or is void.</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9">TypeEvaluationKind</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1be3afe566ffd19818efe9f6b07a8ea">getEvaluationKind</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> </div>
+<div class="line"><a name="l01263"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1c6e4fe9ddc3eb21b00b36f9655a7bf4"> 1263</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1c6e4fe9ddc3eb21b00b36f9655a7bf4">hasScalarEvaluationKind</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1be3afe566ffd19818efe9f6b07a8ea">getEvaluationKind</a>(T) == <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9aa4a7b0b5cf5c3854e35ca0c172e93269">TEK_Scalar</a>;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>   }</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div>
+<div class="line"><a name="l01267"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adb210db7ab6920236d4403eaca7d663b"> 1267</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adb210db7ab6920236d4403eaca7d663b">hasAggregateEvaluationKind</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1be3afe566ffd19818efe9f6b07a8ea">getEvaluationKind</a>(T) == <a class="code" href="namespaceclang_1_1CodeGen.html#a8e206ea4edfe305918f0b28322f7aef9a6bdd6972cc7f7a6326c359a2a07df29a">TEK_Aggregate</a>;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   }</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment"></span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">  /// createBasicBlock - Create an LLVM basic block.</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52"> 1272</a></span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>(<span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>,</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>                                      llvm::Function *parent = 0,</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>                                      llvm::BasicBlock *before = 0) {</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="preprocessor">#ifdef NDEBUG</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="preprocessor"></span>    <span class="keywordflow">return</span> llvm::BasicBlock::Create(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(), <span class="stringliteral">""</span>, parent, before);</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="preprocessor"></span>    <span class="keywordflow">return</span> llvm::BasicBlock::Create(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ab38e48e9cabd4b9b64555c6c825f06">getLLVMContext</a>(), name, parent, before);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="preprocessor"></span>  }</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment"></span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment">  /// getBasicBlockForLabel - Return the LLVM basicblock that the specified</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">  /// label maps to.</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"></span>  JumpDest <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3193eed9f43d510f1b55f600015b622b">getJumpDestForLabel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment"></span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">  /// SimplifyForwardingBlocks - If the given basic block is only a branch to</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">  /// another basic block, simplify it. This assumes that no other code could</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">  /// potentially reference the basic block.</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a50c90f74860b47d2b6d700f08d6f418f">SimplifyForwardingBlocks</a>(llvm::BasicBlock *BB);</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment"></span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">  /// EmitBlock - Emit the given block \arg BB and set it as the insert point,</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment">  /// adding a fall-through branch from the current insert block if</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">  /// necessary. It is legal to call this function even if there is no current</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment">  /// insertion point.</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">  /// IsFinished - If true, indicates that the caller has finished emitting</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">  /// branches to the given block and does not expect to emit code into it. This</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment">  /// means the block can be ignored if it is unreachable.</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(llvm::BasicBlock *BB, <span class="keywordtype">bool</span> IsFinished=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment"></span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">  /// EmitBlockAfterUses - Emit the given block somewhere hopefully</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment">  /// near its uses, and leave the insertion point in it.</span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4e20486acfb3cdfbec8d8fad2839ebba">EmitBlockAfterUses</a>(llvm::BasicBlock *BB);</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment"></span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment">  /// EmitBranch - Emit a branch to the specified basic block from the current</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment">  /// insert block, taking care to avoid creation of branches from dummy</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment">  /// blocks. It is legal to call this function even if there is no current</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment">  /// insertion point.</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment">  /// This function clears the current insertion point. The caller should follow</span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">  /// calls to this function with calls to Emit*Block prior to generation new</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">  /// code.</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#acd75804886d9542735d748f04de9efa1">EmitBranch</a>(llvm::BasicBlock *Block);</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment"></span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment">  /// HaveInsertPoint - True if an insertion point is defined. If not, this</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment">  /// indicates that the current code being emitted is unreachable.</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5f30cf7d71aada81975f4a079203b01"> 1317</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5f30cf7d71aada81975f4a079203b01">HaveInsertPoint</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.GetInsertBlock() != 0;</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>   }</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment"></span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">  /// EnsureInsertPoint - Ensure that an insertion point is defined so that</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment">  /// emitted IR has a place to go. Note that by definition, if this function</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">  /// creates a block then that block is unreachable; callers may do better to</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">  /// detect when no insertion point is defined and simply skip IR generation.</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aebc753533aefb02b31dc6d12b1fb6e06"> 1325</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aebc753533aefb02b31dc6d12b1fb6e06">EnsureInsertPoint</a>() {</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5f30cf7d71aada81975f4a079203b01">HaveInsertPoint</a>())</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdec5412ab40bb1923c689fe093f8871">EmitBlock</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d442ba1c516ff4a2fbf1e118359cb52" title="createBasicBlock - Create an LLVM basic block.">createBasicBlock</a>());</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>   }</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">  /// ErrorUnsupported - Print out an error that codegen doesn't support the</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">  /// specified stmt yet.</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae2b798e41b51a2112c9fe130f33d422e">ErrorUnsupported</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1Type.html">Type</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">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>   <span class="comment">//                                  Helpers</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> </div>
+<div class="line"><a name="l01338"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aafd7728d0f086ddf927150fcdcd86df8"> 1338</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aafd7728d0f086ddf927150fcdcd86df8">MakeAddrLValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V, <a class="code" href="classclang_1_1QualType.html">QualType</a> T,</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>                         <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment = <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a>()) {</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a722d1083ced328e61d7028086ffe91a3">LValue::MakeAddr</a>(V, T, Alignment, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>(),</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>                             <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a21fb16d28b597ab139093fe506be8831">getTBAAInfo</a>(T));</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>   }</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> </div>
+<div class="line"><a name="l01344"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac85064af11c2b350b51e373aa33f3f3e"> 1344</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac85064af11c2b350b51e373aa33f3f3e">MakeNaturalAlignAddrLValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V, <a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment;</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>     <span class="keywordflow">if</span> (!T-><a class="code" href="classclang_1_1Type.html#a6d84e779575f1e510f7ddc98119662bd" title="Def If non-NULL, and the type refers to some kind of declaration that can be completed (such as a C s...">isIncompleteType</a>())</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>       Alignment = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a78053c06e4477f81b295cac200144fc4" title="Return the ABI-specified alignment of a (complete) type T, in characters.">getTypeAlignInChars</a>(T);</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html#a722d1083ced328e61d7028086ffe91a3">LValue::MakeAddr</a>(V, T, Alignment, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>(),</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>                             <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac90e716619f634d438c02ba73caaafeb">CGM</a>.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenModule.html#a21fb16d28b597ab139093fe506be8831">getTBAAInfo</a>(T));</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>   }</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"></span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment">  /// CreateTempAlloca - This creates a alloca and inserts it into the entry</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment">  /// block. The caller is responsible for setting an appropriate alignment on</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">  /// the alloca.</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment"></span>  llvm::AllocaInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1c72e741c84049695bde11b7df94c332">CreateTempAlloca</a>(llvm::Type *Ty,</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>                                      <span class="keyword">const</span> Twine &Name = <span class="stringliteral">"tmp"</span>);</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"></span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment">  /// InitTempAlloca - Provide an initial value for the given alloca.</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afdb7d67ade68a70b496dfd593730fe69" title="InitTempAlloca - Provide an initial value for the given alloca.">InitTempAlloca</a>(llvm::AllocaInst *Alloca, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>);</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"></span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">  /// CreateIRTemp - Create a temporary IR object of the given type, with</span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">  /// appropriate alignment. This routine should only be used when an temporary</span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment">  /// value needs to be stored into an alloca (for example, to avoid explicit</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">  /// PHI construction), but the type is the IR type, not the type appropriate</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment">  /// for storing in memory.</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment"></span>  llvm::AllocaInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8c9212e4c0e921d5b429b4155eddc2f9">CreateIRTemp</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <span class="keyword">const</span> Twine &Name = <span class="stringliteral">"tmp"</span>);</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment"></span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment">  /// CreateMemTemp - Create a temporary memory object of the given type, with</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment">  /// appropriate alignment.</span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment"></span>  llvm::AllocaInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <span class="keyword">const</span> Twine &Name = <span class="stringliteral">"tmp"</span>);</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment"></span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment">  /// CreateAggTemp - Create a temporary memory object for the given</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment">  /// aggregate type.</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a28025dd0dfd2cde1cde5445690301c92"> 1374</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a28025dd0dfd2cde1cde5445690301c92">CreateAggTemp</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <span class="keyword">const</span> Twine &Name = <span class="stringliteral">"tmp"</span>) {</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a78053c06e4477f81b295cac200144fc4" title="Return the ABI-specified alignment of a (complete) type T, in characters.">getTypeAlignInChars</a>(T);</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a64e50a62672b895e0e40f2a3390a175f">AggValueSlot::forAddr</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a47e5345241bbd0554790bef95ea40f46">CreateMemTemp</a>(T, Name), Alignment,</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>                                  T.<a class="code" href="classclang_1_1QualType.html#a4a3d75cf019a2e769498ef8d6878888b" title="Retrieve the set of qualifiers applied to this type.">getQualifiers</a>(),</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>                                  <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a6d84e167770e22bc451368b9a91ca431a80826bad4d38de95d9c8614c4b1612a5">AggValueSlot::IsNotDestructed</a>,</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>                                  <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#abe9f62d142350d6acdcfde4704f3b3f6acbe806e6b4a058a90fec01ddd6e4107f">AggValueSlot::DoesNotNeedGCBarriers</a>,</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>                                  <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a5c9c197ce5564bb19209233a7004db7fabc0ebb1a165c68902e446375b1e5bfe1">AggValueSlot::IsNotAliased</a>);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>   }</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment"></span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment">  /// Emit a cast to void* in the appropriate address space.</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</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#aa21b88eb12dee547d5a0919e7ff6b5e2" title="Emit a cast to void* in the appropriate address space.">EmitCastToVoidPtr</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment"></span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment">  /// EvaluateExprAsBool - Perform the usual unary conversions on the specified</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment">  /// expression and compare the result against zero, returning an Int1Ty value.</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</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#a7b8c7e5a5818ebcdea197df5db92153c">EvaluateExprAsBool</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment"></span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">  /// EmitIgnoredExpr - Emit an expression in a context which ignores the result.</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6d658adb4ef629c25cc3821f5a3e01ec" title="EmitIgnoredExpr - Emit an expression in a context which ignores the result.">EmitIgnoredExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment"></span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">  /// EmitAnyExpr - Emit code to compute the specified expression which can have</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">  /// any type.  The result is returned as an RValue struct.  If this is an</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">  /// aggregate expression, the aggloc/agglocvolatile arguments indicate where</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">  /// the result should be returned.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">  /// \param ignoreResult True if the resulting value isn't used.</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab55962fe5983453b24c64f76125c760c">EmitAnyExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>                      <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> aggSlot = <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a0ebd86a7559fbac9e6da46663ecc1e78">AggValueSlot::ignored</a>(),</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>                      <span class="keywordtype">bool</span> ignoreResult = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> </div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <span class="comment">// EmitVAListRef - Emit a "reference" to a va_list; this is either the address</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>   <span class="comment">// or the value of the expression, depending on how va_list is defined.</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a59cdd18a230fd9eafed187b7c056de23">EmitVAListRef</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment"></span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment">  /// EmitAnyExprToTemp - Similary to EmitAnyExpr(), however, the result will</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">  /// always be accessible even if no aggregate location is provided.</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9fdb742155a07d24c1070a5c558fdf9d">EmitAnyExprToTemp</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment"></span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment">  /// EmitAnyExprToMem - Emits the code necessary to evaluate an</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment">  /// arbitrary expression into the given memory location.</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af69d1d3fe662be6786b76104985ed2ea">EmitAnyExprToMem</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Location,</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>                         <a class="code" href="classclang_1_1Qualifiers.html">Qualifiers</a> Quals, <span class="keywordtype">bool</span> IsInitializer);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment"></span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment">  /// EmitExprAsInit - Emits the code necessary to initialize a</span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment">  /// location in memory with the given initializer.</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afe4e8a7345f4c58c543eb338597c309b">EmitExprAsInit</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *init, <span class="keyword">const</span> ValueDecl *D,</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>                       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <span class="keywordtype">bool</span> capturedByInit);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment"></span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment">  /// hasVolatileMember - returns true if aggregate type has a volatile</span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">  /// member.</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a36be0e612c04b132bf88fe4726500261"> 1423</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a36be0e612c04b132bf88fe4726500261">hasVolatileMember</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RT = T-><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="l01425"></a><span class="lineno"> 1425</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD = cast<RecordDecl>(RT->getDecl());</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>       <span class="keywordflow">return</span> RD-><a class="code" href="classclang_1_1RecordDecl.html#a3d62e73b14bb7b7f8579b87f1348e6da">hasVolatileMember</a>();</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>     }</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>   }<span class="comment"></span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment">  /// EmitAggregateCopy - Emit an aggregate assignment.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment">  /// The difference to EmitAggregateCopy is that tail padding is not copied.</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment">  /// This is required for correctness when assigning non-POD structures in C++.</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a767f80cb15817dd5e0bfdab31d3515e1"> 1434</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a767f80cb15817dd5e0bfdab31d3515e1">EmitAggregateAssign</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DestPtr, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SrcPtr,</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>                            <a class="code" href="classclang_1_1QualType.html">QualType</a> EltTy) {</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>     <span class="keywordtype">bool</span> IsVolatile = <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a36be0e612c04b132bf88fe4726500261">hasVolatileMember</a>(EltTy);</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12ee175c3e6e4041476f5d3af692a70a">EmitAggregateCopy</a>(DestPtr, SrcPtr, EltTy, IsVolatile, <a class="code" href="classclang_1_1CharUnits.html#ae8fbc6063b513b85cd488904994ac8c2" title="Zero - Construct a CharUnits quantity of zero.">CharUnits::Zero</a>(),</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>                       <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>   }</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment"></span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">  /// EmitAggregateCopy - Emit an aggregate copy.</span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment">  /// \param isVolatile - True iff either the source or the destination is</span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment">  /// volatile.</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment">  /// \param isAssignment - If false, allow padding to be copied.  This often</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment">  /// yields more efficient.</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12ee175c3e6e4041476f5d3af692a70a">EmitAggregateCopy</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DestPtr, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SrcPtr,</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>                          <a class="code" href="classclang_1_1QualType.html">QualType</a> EltTy, <span class="keywordtype">bool</span> isVolatile=<span class="keyword">false</span>,</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>                          <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment = <a class="code" href="classclang_1_1CharUnits.html#ae8fbc6063b513b85cd488904994ac8c2" title="Zero - Construct a CharUnits quantity of zero.">CharUnits::Zero</a>(),</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>                          <span class="keywordtype">bool</span> isAssignment = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment"></span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment">  /// StartBlock - Start new block named N. If insert block is a dummy block</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">  /// then reuse it.</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad08202a393f2c00fc836b4c6962ac2b7">StartBlock</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *N);</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment"></span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment">  /// GetAddrOfLocalVar - Return the address of a local variable.</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a82621c86a6f95d33ae07868357749654"> 1457</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#a82621c86a6f95d33ae07868357749654" title="GetAddrOfLocalVar - Return the address of a local variable.">GetAddrOfLocalVar</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Res = LocalDeclMap[VD];</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>     assert(Res && <span class="stringliteral">"Invalid argument to GetAddrOfLocalVar(), no decl!"</span>);</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>     <span class="keywordflow">return</span> Res;</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>   }</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment"></span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">  /// getOpaqueLValueMapping - Given an opaque value expression (which</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment">  /// must be mapped to an l-value), return its mapping.</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9eb7e3aa4d6cc8c79099fbe5a3a880f7"> 1465</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9eb7e3aa4d6cc8c79099fbe5a3a880f7">getOpaqueLValueMapping</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *e) {</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>     assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a7266c5c8ac67da5c26de2aba6febc787">OpaqueValueMapping::shouldBindAsLValue</a>(e));</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> </div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     llvm::DenseMap<const OpaqueValueExpr*,LValue>::iterator</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>       it = OpaqueLValues.find(e);</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>     assert(it != OpaqueLValues.end() && <span class="stringliteral">"no mapping for opaque value!"</span>);</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>     <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>   }</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment"></span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="comment">  /// getOpaqueRValueMapping - Given an opaque value expression (which</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment">  /// must be mapped to an r-value), return its mapping.</span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76fc1b65ae4edecc3d12120ecb263467"> 1476</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> &<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76fc1b65ae4edecc3d12120ecb263467">getOpaqueRValueMapping</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *e) {</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>     assert(!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1OpaqueValueMapping.html#a7266c5c8ac67da5c26de2aba6febc787">OpaqueValueMapping::shouldBindAsLValue</a>(e));</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> </div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>     llvm::DenseMap<const OpaqueValueExpr*,RValue>::iterator</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>       it = OpaqueRValues.find(e);</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>     assert(it != OpaqueRValues.end() && <span class="stringliteral">"no mapping for opaque value!"</span>);</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>     <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   }</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment"></span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment">  /// getAccessedFieldNo - Given an encoded value and a result number, return</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="comment">  /// the input field number being accessed.</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af0615febe174e7679c2200d53fa80ab6">getAccessedFieldNo</a>(<span class="keywordtype">unsigned</span> Idx, <span class="keyword">const</span> llvm::Constant *Elts);</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> </div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>   llvm::BlockAddress *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a19ececdfd91c1c6a2e5d83f78e02b47d">GetAddrOfLabel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *L);</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>   llvm::BasicBlock *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad6106895302552955109578436184ff5">GetIndirectGotoBlock</a>();</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <span class="comment"></span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="comment">  /// EmitNullInitialization - Generate code to set a value of the given type to</span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="comment">  /// null, If the type contains data member pointers, they will be initialized</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="comment">  /// to -1 in accordance with the Itanium C++ ABI.</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7344a3814e9742710d31ef902d639de2">EmitNullInitialization</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DestPtr, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> </div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>   <span class="comment">// EmitVAArg - Generate code to get an argument from the passed in pointer</span></div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   <span class="comment">// and update it accordingly. The return value is a pointer to the argument.</span></div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   <span class="comment">// FIXME: We should be able to get rid of this method and use the va_arg</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="comment">// instruction in LLVM instead once it works well enough.</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a876a331687fa75f496f05de99bb2a0e0">EmitVAArg</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *VAListAddr, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="comment"></span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="comment">  /// emitArrayLength - Compute the length of an array, even if it's a</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="comment">  /// VLA, and drill down to the base element type.</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</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#a1613f1240d4d1a98118e495b96eb8a99">emitArrayLength</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ArrayType.html">ArrayType</a> *arrayType,</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>                                <a class="code" href="classclang_1_1QualType.html">QualType</a> &baseType,</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>                                <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *&addr);</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="comment"></span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> <span class="comment">  /// EmitVLASize - Capture all the sizes for the VLA expressions in</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment">  /// the given variably-modified type and store them in the VLASizeMap.</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">  /// This function can be called with a null (unreachable) insert point.</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af5ebf447ad95c736942c95f4206b2497">EmitVariablyModifiedType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment"></span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="comment">  /// getVLASize - Returns an LLVM value that corresponds to the size,</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment">  /// in non-variably-sized elements, of a variable length array type,</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment">  /// plus that largest non-variably-sized element type.  Assumes that</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">  /// the type has already been emitted with EmitVariablyModifiedType.</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment"></span>  std::pair<llvm::Value*,QualType> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aad5f5781bb8931ec79b2ef0946098c57">getVLASize</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *vla);</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>   std::pair<llvm::Value*,QualType> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aad5f5781bb8931ec79b2ef0946098c57">getVLASize</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> vla);</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="comment"></span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">  /// LoadCXXThis - Load the value of 'this'. This function is only valid while</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment">  /// generating code for an C++ member function.</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a239c983f96c4ab39307ffb5f99b73d7f"> 1524</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#a239c983f96c4ab39307ffb5f99b73d7f">LoadCXXThis</a>() {</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>     assert(CXXThisValue && <span class="stringliteral">"no 'this' value for this function"</span>);</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>     <span class="keywordflow">return</span> CXXThisValue;</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   }</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="comment"></span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment">  /// LoadCXXVTT - Load the VTT parameter to base constructors/destructors have</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment">  /// virtual bases.</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="comment"></span>  <span class="comment">// FIXME: Every place that calls LoadCXXVTT is something</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>   <span class="comment">// that needs to be abstracted properly.</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a46a4b6b54527d3fff0380e943580addf"> 1533</a></span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a46a4b6b54527d3fff0380e943580addf">LoadCXXVTT</a>() {</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>     assert(CXXStructorImplicitParamValue && <span class="stringliteral">"no VTT value for this function"</span>);</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>     <span class="keywordflow">return</span> CXXStructorImplicitParamValue;</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>   }</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> <span class="comment"></span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> <span class="comment">  /// LoadCXXStructorImplicitParam - Load the implicit parameter</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="comment">  /// for a constructor/destructor.</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d99a14742b7d1453110e334891b6aad"> 1540</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#a9d99a14742b7d1453110e334891b6aad">LoadCXXStructorImplicitParam</a>() {</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>     assert(CXXStructorImplicitParamValue &&</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>            <span class="stringliteral">"no implicit argument value for this function"</span>);</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>     <span class="keywordflow">return</span> CXXStructorImplicitParamValue;</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>   }</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment"></span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment">  /// GetAddressOfBaseOfCompleteClass - Convert the given pointer to a</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment">  /// complete class to the given direct base.</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment"></span>  <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1b74191652148ffd7c9eb3530eb335f6">GetAddressOfDirectBaseInCompleteClass</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>,</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Derived,</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *<a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>                                         <span class="keywordtype">bool</span> BaseIsVirtual);</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment"></span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="comment">  /// GetAddressOfBaseClass - This function will add the necessary delta to the</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> <span class="comment">  /// load of 'this' and returns address of the base class.</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</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#a75da1a9b3eb8a6aaeda1c075563021b3">GetAddressOfBaseClass</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>,</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Derived,</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>                                      <a class="code" href="classclang_1_1CastExpr.html#ae5f3bd03b52184ff80e487ecbf3aba4d">CastExpr::path_const_iterator</a> PathBegin,</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>                                      <a class="code" href="classclang_1_1CastExpr.html#ae5f3bd03b52184ff80e487ecbf3aba4d">CastExpr::path_const_iterator</a> PathEnd,</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>                                      <span class="keywordtype">bool</span> NullCheckValue);</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> </div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4a3efbcf6257c66635aaaf1924c7072c">GetAddressOfDerivedClass</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>,</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Derived,</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>                                         <a class="code" href="classclang_1_1CastExpr.html#ae5f3bd03b52184ff80e487ecbf3aba4d">CastExpr::path_const_iterator</a> PathBegin,</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>                                         <a class="code" href="classclang_1_1CastExpr.html#ae5f3bd03b52184ff80e487ecbf3aba4d">CastExpr::path_const_iterator</a> PathEnd,</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>                                         <span class="keywordtype">bool</span> NullCheckValue);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> <span class="comment"></span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="comment">  /// GetVTTParameter - Return the VTT parameter that should be passed to a</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="comment">  /// base constructor/destructor with virtual bases.</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> <span class="comment">  /// FIXME: VTTs are Itanium ABI-specific, so the definition should move</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="comment">  /// to ItaniumCXXABI.cpp together with all the references to VTT.</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</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#ad7641cb509db3ec241eb5b8176ee0474">GetVTTParameter</a>(<a class="code" href="classclang_1_1GlobalDecl.html">GlobalDecl</a> GD, <span class="keywordtype">bool</span> ForVirtualBase,</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>                                <span class="keywordtype">bool</span> Delegating);</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> </div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0d8c3c78ca5e1ab2ba0bf699044c6d2f">EmitDelegateCXXConstructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *Ctor,</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>                                       <a class="code" href="namespaceclang.html#a07c209a701587314a04d68c934e5a16d" title="C++ constructor types.">CXXCtorType</a> CtorType,</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>                                       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>   <span class="comment">// It's important not to confuse this and the previous function. Delegating</span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>   <span class="comment">// constructors are the C++0x feature. The constructor delegate optimization</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>   <span class="comment">// is used to reduce duplication in the base and complete consturctors where</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>   <span class="comment">// they are substantially the same.</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0b5db6ad527b2ce2ff2d7139aa393bf6">EmitDelegatingCXXConstructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *Ctor,</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1FunctionArgList.html">FunctionArgList</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4e79cd96285d711efa7b3a77dfa4aa7a">EmitCXXConstructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D, <a class="code" href="namespaceclang.html#a07c209a701587314a04d68c934e5a16d" title="C++ constructor types.">CXXCtorType</a> <a class="code" href="classclang_1_1Type.html">Type</a>,</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>                               <span class="keywordtype">bool</span> ForVirtualBase, <span class="keywordtype">bool</span> Delegating,</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>                               <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This,</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>                               <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>                               <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd);</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>   </div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aaeba75ea2575ac1e0b62d87db08f4e79">EmitSynthesizedCXXCopyCtorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D,</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>                               <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Src,</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>                               <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>                               <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd);</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12c251b3a88bd0cdc0332092a1c9e474">EmitCXXAggrConstructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D,</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1ConstantArrayType.html">ConstantArrayType</a> *ArrayTy,</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *ArrayPtr,</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>                                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>                                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd,</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>                                   <span class="keywordtype">bool</span> ZeroInitialization = <span class="keyword">false</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="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a12c251b3a88bd0cdc0332092a1c9e474">EmitCXXAggrConstructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D,</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *NumElements,</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *ArrayPtr,</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>                                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>                                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd,</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>                                   <span class="keywordtype">bool</span> ZeroInitialization = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> </div>
+<div class="line"><a name="l01610"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4be898907517e22404c9140827358d90"> 1610</a></span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4be898907517e22404c9140827358d90">destroyCXXObject</a>;</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="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1c1e73523ce13aee93eeff5cc6fc26d">EmitCXXDestructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *D, <a class="code" href="namespaceclang.html#a8ce1c62f474552f6cfc7c340e573e157" title="C++ destructor types.">CXXDtorType</a> <a class="code" href="classclang_1_1Type.html">Type</a>,</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>                              <span class="keywordtype">bool</span> ForVirtualBase, <span class="keywordtype">bool</span> Delegating,</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>                              <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This);</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> </div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a51b9abc730c4b4702efbb1ca1915f08d">EmitNewArrayInitializer</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXNewExpr.html" title="Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...">CXXNewExpr</a> *E, <a class="code" href="classclang_1_1QualType.html">QualType</a> elementType,</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>                                <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *NewPtr, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *NumElements);</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> </div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3d8ede2502a271f3f15af669e4d7f0f0" title="Emits all the code to cause the given temporary to be cleaned up.">EmitCXXTemporary</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTemporary.html" title="Represents a C++ temporary.">CXXTemporary</a> *Temporary, <a class="code" href="classclang_1_1QualType.html">QualType</a> TempType,</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>                         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr);</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> </div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a514f540adbef29da4bdc220a0052b058">EmitCXXNewExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXNewExpr.html" title="Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...">CXXNewExpr</a> *E);</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ef7df0a45259ed230e44be87d557bb8">EmitCXXDeleteExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDeleteExpr.html" title="Represents a delete expression for memory deallocation and destructor calls, e.g. "delete[] pArray"...">CXXDeleteExpr</a> *E);</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6357cadd6625f4591aa04c901bb271af">EmitDeleteCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *DeleteFD, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr,</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>                       <a class="code" href="classclang_1_1QualType.html">QualType</a> DeleteTy);</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> </div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a>* <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#affb497fd7ee89ab9d8616aadbc3806f6">EmitCXXTypeidExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTypeidExpr.html">CXXTypeidExpr</a> *E);</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a92592072e447e5f285c8a95da9f447ce">EmitDynamicCast</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V, <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDynamicCastExpr.html" title="A C++ dynamic_cast expression (C++ [expr.dynamic.cast]).">CXXDynamicCastExpr</a> *DCE);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a>* <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0a5b39d970239f27db1d55212e540876">EmitCXXUuidofExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXUuidofExpr.html">CXXUuidofExpr</a> *E);</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="comment"></span></div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> <span class="comment">  /// \brief Situations in which we might emit a check for the suitability of a</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="comment">  ///        pointer or glvalue.</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6"> 1634</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6" title="Situations in which we might emit a check for the suitability of a pointer or glvalue.">TypeCheckKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <span class="comment">    /// Checking the operand of a load. Must be suitably sized and aligned.</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ad8ff8e321b7ca9aac56195de9ea05d94"> 1636</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ad8ff8e321b7ca9aac56195de9ea05d94" title="Checking the operand of a load. Must be suitably sized and aligned.">TCK_Load</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="comment">    /// Checking the destination of a store. Must be suitably sized and aligned.</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a958228d51bdf7739b42b3131a3f64ecd"> 1638</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a958228d51bdf7739b42b3131a3f64ecd" title="Checking the destination of a store. Must be suitably sized and aligned.">TCK_Store</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment">    /// Checking the bound value in a reference binding. Must be suitably sized</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment">    /// and aligned, but is not required to refer to an object (until the</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">    /// reference is used), per core issue 453.</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ad2e2eaf6bb831ee1cdfc76e62d14c775"> 1642</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ad2e2eaf6bb831ee1cdfc76e62d14c775">TCK_ReferenceBinding</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment">    /// Checking the object expression in a non-static data member access. Must</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> <span class="comment">    /// be an object within its lifetime.</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a5f3beb3b33024b2a291a98792dc57ab4"> 1645</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a5f3beb3b33024b2a291a98792dc57ab4">TCK_MemberAccess</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment">    /// Checking the 'this' pointer for a call to a non-static member function.</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment">    /// Must be an object within its lifetime.</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ab20998f64be59fdd97dce6447d594ab9"> 1648</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6ab20998f64be59fdd97dce6447d594ab9">TCK_MemberCall</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment">    /// Checking the 'this' pointer for a constructor call.</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a864c16feda667eb2680f10095c359c59"> 1650</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a864c16feda667eb2680f10095c359c59" title="Checking the 'this' pointer for a constructor call.">TCK_ConstructorCall</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment">    /// Checking the operand of a static_cast to a derived pointer type. Must be</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment">    /// null or an object within its lifetime.</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a1bd605ead5bab3ec286c11990795fcc1"> 1653</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a1bd605ead5bab3ec286c11990795fcc1">TCK_DowncastPointer</a>,<span class="comment"></span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment">    /// Checking the operand of a static_cast to a derived reference type. Must</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment">    /// be an object within its lifetime.</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a43ae653b5cbf0a84e147df511764ed28"> 1656</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6a43ae653b5cbf0a84e147df511764ed28">TCK_DowncastReference</a></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>   };</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="comment"></span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="comment">  /// \brief Emit a check that \p V is the address of storage of the</span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> <span class="comment">  /// appropriate size and alignment for an object of type \p Type.</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abcdc546762ac7c5e06fc043cb509106a" title="Emit a check that V is the address of storage of the appropriate size and alignment for an object of ...">EmitTypeCheck</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6" title="Situations in which we might emit a check for the suitability of a pointer or glvalue.">TypeCheckKind</a> TCK, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V,</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>                      <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1Type.html">Type</a>, <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment = <a class="code" href="classclang_1_1CharUnits.html#ae8fbc6063b513b85cd488904994ac8c2" title="Zero - Construct a CharUnits quantity of zero.">CharUnits::Zero</a>());</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment"></span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">  /// \brief Emit a check that \p Base points into an array object, which</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> <span class="comment">  /// we can access at index \p Index. \p Accessed should be \c false if we</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> <span class="comment">  /// this expression is used as an lvalue, for instance in "&Arr[Idx]".</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3af4f663084adac7cb8dc910185c6812" title="Emit a check that Base points into an array object, which we can access at index Index. Accessed should be false if we this expression is used as an lvalue, for instance in "&Arr[Idx]".">EmitBoundsCheck</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Index,</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>                        <a class="code" href="classclang_1_1QualType.html">QualType</a> IndexType, <span class="keywordtype">bool</span> Accessed);</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> </div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a375a4746980d1b39f2315e92db7ec8fe">EmitScalarPrePostIncDec</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV,</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>                                        <span class="keywordtype">bool</span> isInc, <span class="keywordtype">bool</span> isPre);</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>   <a class="code" href="CGExprComplex_8cpp.html#a87a13d91cb316b5d407086ac759ec633">ComplexPairTy</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0f16adafc4f7f7bfc80dc2dba08a5564">EmitComplexPrePostIncDec</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV,</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>                                          <span class="keywordtype">bool</span> isInc, <span class="keywordtype">bool</span> isPre);</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>   <span class="comment">//                            Declaration Emission</span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> <span class="comment"></span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="comment">  /// EmitDecl - Emit a declaration.</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="comment">  /// This function can be called with a null (unreachable) insert point.</span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2a10cf05472de88a4696d91357a80b27">EmitDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> &D);</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> <span class="comment"></span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="comment">  /// EmitVarDecl - Emit a local variable declaration.</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="comment">  /// This function can be called with a null (unreachable) insert point.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad399887c4c34f69e058a95ed827c42aa">EmitVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D);</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> </div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4957380d06be8ac67e51f46d96830788">EmitScalarInit</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *init, <span class="keyword">const</span> ValueDecl *D,</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>                       <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <span class="keywordtype">bool</span> capturedByInit);</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4957380d06be8ac67e51f46d96830788">EmitScalarInit</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *init, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue);</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> </div>
+<div class="line"><a name="l01692"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad5333d6a99e935a03081494d677a135e"> 1692</a></span>   <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad5333d6a99e935a03081494d677a135e">SpecialInitFn</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &Init, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D,</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>                              <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Address);</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> <span class="comment"></span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="comment">  /// EmitAutoVarDecl - Emit an auto variable declaration.</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="comment">  /// This function can be called with a null (unreachable) insert point.</span></div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a361ac65d0e3162cda8f4da98876a54dd">EmitAutoVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D);</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> </div>
+<div class="line"><a name="l01700"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html"> 1700</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html">AutoVarEmission</a> {</div>
+<div class="line"><a name="l01701"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a7e2731d294933d00bb5ff1c008fbb959"> 1701</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a>;</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> </div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Variable;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> <span class="comment"></span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment">    /// The alignment of the variable.</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment"></span>    <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> Alignment;</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment"></span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="comment">    /// The address of the alloca.  Null if the variable was emitted</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <span class="comment">    /// as a global constant.</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> <span class="comment"></span>    <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Address;</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> </div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *NRVOFlag;</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="comment"></span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> <span class="comment">    /// True if the variable is a __block variable.</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment"></span>    <span class="keywordtype">bool</span> IsByRef;</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment"></span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment">    /// True if the variable is of aggregate type and has a constant</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="comment">    /// initializer.</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="comment"></span>    <span class="keywordtype">bool</span> IsConstantAggregate;</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="comment"></span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="comment">    /// Non-null if we should use lifetime annotations.</span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="comment"></span>    <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SizeForLifetimeMarkers;</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> </div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>     <span class="keyword">struct </span>Invalid {};</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html">AutoVarEmission</a>(Invalid) : Variable(0) {}</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> </div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>     AutoVarEmission(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &variable)</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>       : Variable(&variable), Address(0), NRVOFlag(0),</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>         IsByRef(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), IsConstantAggregate(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>         SizeForLifetimeMarkers(0) {}</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> </div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>     <span class="keywordtype">bool</span> wasEmittedAsGlobal()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Address == 0; }</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> </div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01735"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#aee4cf89514f6143af8599eec60dbb90f"> 1735</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html">AutoVarEmission</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#aee4cf89514f6143af8599eec60dbb90f">invalid</a>() { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html">AutoVarEmission</a>(Invalid()); }</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> </div>
+<div class="line"><a name="l01737"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a11c3ea3371befb7baa1efa1ab11c0c2b"> 1737</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a11c3ea3371befb7baa1efa1ab11c0c2b">useLifetimeMarkers</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SizeForLifetimeMarkers != 0; }</div>
+<div class="line"><a name="l01738"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a2a1b21dc8b77ea88c5f0d54574c08bdb"> 1738</a></span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a2a1b21dc8b77ea88c5f0d54574c08bdb">getSizeForLifetimeMarkers</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>       assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#a11c3ea3371befb7baa1efa1ab11c0c2b">useLifetimeMarkers</a>());</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>       <span class="keywordflow">return</span> SizeForLifetimeMarkers;</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>     }</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment"></span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment">    /// Returns the raw, allocated address, which is not necessarily</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment">    /// the address of the object itself.</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#ad4737b2a452cbcbdd7802a67882403e3"> 1745</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_1_1AutoVarEmission.html#ad4737b2a452cbcbdd7802a67882403e3">getAllocatedAddress</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>       <span class="keywordflow">return</span> Address;</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>     }</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment"></span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment">    /// Returns the address of the object within this declaration.</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="comment">    /// Note that this does not chase the forwarding pointer for</span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="comment">    /// __block decls.</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1AutoVarEmission.html#af36fd0f2dffed18cf07cdced23826e8f"> 1752</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_1_1AutoVarEmission.html#af36fd0f2dffed18cf07cdced23826e8f">getObjectAddress</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>       <span class="keywordflow">if</span> (!IsByRef) <span class="keywordflow">return</span> Address;</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> </div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>       <span class="keywordflow">return</span> CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStructGEP(Address,</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>                                          CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1283abe4c872adee44e04dedbdf821a3">getByRefValueLLVMField</a>(Variable),</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>                                          Variable-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>());</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>     }</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>   };</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>   AutoVarEmission <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40b64c30a88dc9b44b4941951bf80da7">EmitAutoVarAlloca</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &var);</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a373581b9034f81c725f8aaa829ece14b">EmitAutoVarInit</a>(<span class="keyword">const</span> AutoVarEmission &emission);</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa92cef8f0df2b1f7f8aaadac281a3f23">EmitAutoVarCleanups</a>(<span class="keyword">const</span> AutoVarEmission &emission);  </div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa765e48aa8c5071e981c1a8dea17563a" title="Enter a destroy cleanup for the given local variable.">emitAutoVarTypeCleanup</a>(<span class="keyword">const</span> AutoVarEmission &emission,</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>                               <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> dtorKind);</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> </div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a67456de2ca28ad5e4771c440300c35e9">EmitStaticVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D,</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>                          llvm::GlobalValue::LinkageTypes <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>);</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="comment"></span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment">  /// EmitParmDecl - Emit a ParmVarDecl or an ImplicitParamDecl.</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0f6e7571feb12b1d1214ab940ec3d438" title="EmitParmDecl - Emit a ParmVarDecl or an ImplicitParamDecl.">EmitParmDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Arg, <span class="keywordtype">unsigned</span> ArgNo);</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"></span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">  /// protectFromPeepholes - Protect a value that we're intending to</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment">  /// store to the side, but which will probably be used later, from</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment">  /// aggressive peepholing optimizations that might delete it.</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment">  /// Pass the result to unprotectFromPeepholes to declare that</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">  /// protection is no longer required.</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="comment">  /// There's no particular reason why this shouldn't apply to</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment">  /// l-values, it's just that no existing peepholes work on pointers.</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment"></span>  PeepholeProtection <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a266f6c550d66c7e46fc8c2d80363ee4a">protectFromPeepholes</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> rvalue);</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a339c7fc5d4646bec4679efc40c7b8c8b">unprotectFromPeepholes</a>(PeepholeProtection protection);</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> </div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>   <span class="comment">//                             Statement Emission</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <span class="comment"></span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="comment">  /// EmitStopPoint - Emit a debug stoppoint if we are emitting debug info.</span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa45ef94b5850f81150e079259577c248" title="EmitStopPoint - Emit a debug stoppoint if we are emitting debug info.">EmitStopPoint</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <span class="comment"></span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> <span class="comment">  /// EmitStmt - Emit the code for the statement \arg S. It is legal to call</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="comment">  /// this function even if there is no current insertion point.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <span class="comment">  /// This function may clear the current insertion point; callers should use</span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="comment">  /// EnsureInsertPoint if they wish to subsequently generate code without first</span></div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="comment">  /// calling EmitBlock, EmitBranch, or EmitStmt.</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab625dabfdcc8082335d64c4cbd009ef0">EmitStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> <span class="comment"></span></div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> <span class="comment">  /// EmitSimpleStmt - Try to emit a "simple" statement which does not</span></div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> <span class="comment">  /// necessarily require an insertion point or debug information; typically</span></div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="comment">  /// because the statement amounts to a jump or a container of other</span></div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="comment">  /// statements.</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="comment">  /// \return True if the statement was handled.</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8040fa73bfbab2a81b269c1c9a06d4ba">EmitSimpleStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> </div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3a933203664f04303ac221c77eda878f">EmitCompoundStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keywordtype">bool</span> GetLast = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>                                 <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> AVS = <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a0ebd86a7559fbac9e6da46663ecc1e78">AggValueSlot::ignored</a>());</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa1da5e63941f1734b159ccb814bcaa9a">EmitCompoundStmtWithoutScope</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> &S,</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>                                             <span class="keywordtype">bool</span> GetLast = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>                                             <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> AVS =</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>                                                 <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a0ebd86a7559fbac9e6da46663ecc1e78">AggValueSlot::ignored</a>());</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment"></span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">  /// EmitLabel - Emit the block for the given label. It is legal to call this</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment">  /// function even if there is no current insertion point.</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afcaa56928f509cda3935438c8dec88e3">EmitLabel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *D); <span class="comment">// helper for EmitLabelStmt.</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> </div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae1a5834a968a5b5338546a7c6ca1da02">EmitLabelStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LabelStmt.html">LabelStmt</a> &S);</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae6d39b773e9d94b4effa7cc2f661f628">EmitAttributedStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> &S);</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a68908390192efc923e562026b6d73184">EmitGotoStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1GotoStmt.html">GotoStmt</a> &S);</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af4041a9b6f758ecbd187db944d47960b">EmitIndirectGotoStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> &S);</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa743ed13b66d658a3eb068a90bd79bf8">EmitIfStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IfStmt.html">IfStmt</a> &S);</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae84fca450cc0e093b6e5997a70af7acf">EmitWhileStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1WhileStmt.html">WhileStmt</a> &S);</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3cbb1d072af7bc3184285e111f04ed19">EmitDoStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DoStmt.html">DoStmt</a> &S);</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2f435b29e7aa50ae32acca6474f33522">EmitForStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ForStmt.html">ForStmt</a> &S);</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ade76f8f53ab9db73e68a20a4eb66bc04">EmitReturnStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> &S);</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae155dc7fd8b725b020fe83cbafebdaf0">EmitDeclStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> &S);</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5ec61513d844f646ec53bc0f885cd1c">EmitBreakStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BreakStmt.html">BreakStmt</a> &S);</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#affa09abf6490f147fcd713aeea1a5880">EmitContinueStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ContinueStmt.html">ContinueStmt</a> &S);</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab237c55aeb0dd2dc17d283d40af90822">EmitSwitchStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1SwitchStmt.html">SwitchStmt</a> &S);</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab2dbee97b70013cbe907455b2c233997">EmitDefaultStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DefaultStmt.html">DefaultStmt</a> &S);</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4145bd8c4b2523be207068182124d987">EmitCaseStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CaseStmt.html">CaseStmt</a> &S);</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2d0e3aede2eac0d5141ad805c0ecec6e">EmitCaseStmtRange</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CaseStmt.html">CaseStmt</a> &S);</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab149d21ed5ecca16b1bcbf8e048b4d48">EmitAsmStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1AsmStmt.html">AsmStmt</a> &S);</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> </div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aef10f65a10635aeb5b412a467f9e5437">EmitObjCForCollectionStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> &S);</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a90b659829772b465f99dd2567021af79">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> &S);</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a348c253e28de3a8e030e4944bcb7bc50">EmitObjCAtThrowStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtThrowStmt.html" title="Represents Objective-C's @throw statement.">ObjCAtThrowStmt</a> &S);</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aac246b8284c913edd7a222dd7052428e">EmitObjCAtSynchronizedStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> &S);</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7684311e09bdb7fefd03451a5dabbad5">EmitObjCAutoreleasePoolStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCAutoreleasePoolStmt.html" title="Represents Objective-C's @autoreleasepool Statement.">ObjCAutoreleasePoolStmt</a> &S);</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> </div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a97c9cf9e1965d24c80da0a14259bf684">getUnwindResumeFn</a>();</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>   llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a840406ee120504741e5b6abd0480f85a">getUnwindResumeOrRethrowFn</a>();</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae064b29757ae2b6085d4df62ea2df530">EnterCXXTryStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> &S, <span class="keywordtype">bool</span> IsFnTryBlock = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac1f782050e59094db58fbbd1b9e3f8c1">ExitCXXTryStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> &S, <span class="keywordtype">bool</span> IsFnTryBlock = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> </div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a079ab0affd32c3e7d992d8421776b732">EmitCXXTryStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> &S);</div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af864c1f6cddea19fde7a2a277819d0e7">EmitSEHTryStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1SEHTryStmt.html">SEHTryStmt</a> &S);</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afb8f7aed005be2fa63aeb8f6ff36cc00">EmitCXXForRangeStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html">CXXForRangeStmt</a> &S);</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> </div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>   llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac0a3a3eb2f04decdc85942c383910185">EmitCapturedStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CapturedStmt.html" title="This captures a statement into a function. For example, the following pragma annotated compound state...">CapturedStmt</a> &S, <a class="code" href="namespaceclang.html#a52df778f2a9b540afde2bc183e9c2075" title="The different kinds of captured statement.">CapturedRegionKind</a> K);</div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>   llvm::Function *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae76a364d597bee2581a07af1c7e149ad" title="Creates the outlined function for a CapturedStmt.">GenerateCapturedStmtFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CapturedDecl.html" title="This represents the body of a CapturedStmt, and serves as its DeclContext.">CapturedDecl</a> *CD,</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>                                                <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD,</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>                                                <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> </div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>   <span class="comment">//                         LValue Expression Emission</span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <span class="comment"></span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <span class="comment">  /// GetUndefRValue - Get an appropriate 'undef' rvalue for the given type.</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aadc4775eb7d01ddeba9a00de640cff38" title="GetUndefRValue - Get an appropriate 'undef' rvalue for the given type.">GetUndefRValue</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <span class="comment"></span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> <span class="comment">  /// EmitUnsupportedRValue - Emit a dummy r-value using the type of E</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> <span class="comment">  /// and issue an ErrorUnsupported style diagnostic (using the</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="comment">  /// provided Name).</span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab75c7c2f4f8787360b68b4d4846ef9c4">EmitUnsupportedRValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>                                <span class="keyword">const</span> <span class="keywordtype">char</span> *Name);</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> <span class="comment"></span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="comment">  /// EmitUnsupportedLValue - Emit a dummy l-value using the type of E and issue</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> <span class="comment">  /// an ErrorUnsupported style diagnostic (using the provided Name).</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8c732ee8cf21b88883264ad57ab76576">EmitUnsupportedLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>                                <span class="keyword">const</span> <span class="keywordtype">char</span> *Name);</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="comment"></span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="comment">  /// EmitLValue - Emit code to compute a designator that specifies the location</span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">  /// of the expression.</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="comment">  /// This can return one of two things: a simple address or a bitfield</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="comment">  /// reference.  In either case, the LLVM Value* in the LValue structure is</span></div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> <span class="comment">  /// guaranteed to be an LLVM pointer type.</span></div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="comment">  /// If this returns a bitfield reference, nothing about the pointee type of</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="comment">  /// the LLVM value is known: For example, it may not be a pointer to an</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="comment">  /// integer.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="comment">  /// If this returns a normal address, and if the lvalue's C type is fixed</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="comment">  /// size, this method guarantees that the returned pointer type will point to</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> <span class="comment">  /// an LLVM type of the same size of the lvalue's type.  If the lvalue has a</span></div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> <span class="comment">  /// variable length type, this is not possible.</span></div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa0edab9cd404123428caf6cf599aa09e">EmitLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="comment"></span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> <span class="comment">  /// \brief Same as EmitLValue but additionally we generate checking code to</span></div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="comment">  /// guard against undefined behavior.  This is only suitable when we know</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="comment">  /// that the address will be used to access the object.</span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#acfb6c861f8e1ac9383bf54b05b5292cd" title="Same as EmitLValue but additionally we generate checking code to guard against undefined behavior...">EmitCheckedLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a506527ab7d0b728228596e9a81c811c6" title="Situations in which we might emit a check for the suitability of a pointer or glvalue.">TypeCheckKind</a> TCK);</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> </div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af2fc80cbb185fd1567879b4394997878">convertTempToRValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <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="l01898"></a><span class="lineno"> 1898</span>                              <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2e789f52f50402f03b38ac7305c0ea86">EmitAtomicInit</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue);</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> </div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2d29091670ce5ca5a1d0db7ae35533e2">EmitAtomicLoad</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</a>,</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>                         <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> slot = <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a0ebd86a7559fbac9e6da46663ecc1e78">AggValueSlot::ignored</a>());</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> </div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adf7f389cfde8fdde7c7b43eca50c711e">EmitAtomicStore</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> rvalue, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <span class="keywordtype">bool</span> isInit);</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="comment"></span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="comment">  /// EmitToMemory - Change a scalar value from its value</span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment">  /// representation to its in-memory representation.</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</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#a8eff252055cf16c4eb408282653d0797">EmitToMemory</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="comment"></span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="comment">  /// EmitFromMemory - Change a scalar value from its memory</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> <span class="comment">  /// representation to its value representation.</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</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#adf8925907bc87d98d8bc66b371f331b2">EmitFromMemory</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="comment"></span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="comment">  /// EmitLoadOfScalar - Load a scalar value from an address, taking</span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> <span class="comment">  /// care to appropriately convert from the memory representation to</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="comment">  /// the LLVM value representation.</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</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#aff8d4768706029de6dbe796b2867a8ef">EmitLoadOfScalar</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Addr, <span class="keywordtype">bool</span> Volatile,</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>                                 <span class="keywordtype">unsigned</span> Alignment, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty,</div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>                                 <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>                                 llvm::MDNode *TBAAInfo = 0,</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>                                 <a class="code" href="classclang_1_1QualType.html">QualType</a> TBAABaseTy = <a class="code" href="classclang_1_1QualType.html">QualType</a>(),</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>                                 uint64_t TBAAOffset = 0);</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> <span class="comment"></span></div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="comment">  /// EmitLoadOfScalar - Load a scalar value from an address, taking</span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">  /// care to appropriately convert from the memory representation to</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="comment">  /// the LLVM value representation.  The l-value must be a simple</span></div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment">  /// l-value.</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</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#aff8d4768706029de6dbe796b2867a8ef">EmitLoadOfScalar</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="comment"></span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="comment">  /// EmitStoreOfScalar - Store a scalar value to an address, taking</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="comment">  /// care to appropriately convert from the memory representation to</span></div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="comment">  /// the LLVM value representation.</span></div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa3de7edefb050b883760e29af7e65f75">EmitStoreOfScalar</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Addr,</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>                          <span class="keywordtype">bool</span> Volatile, <span class="keywordtype">unsigned</span> Alignment, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty,</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>                          llvm::MDNode *TBAAInfo = 0, <span class="keywordtype">bool</span> isInit = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>                          <a class="code" href="classclang_1_1QualType.html">QualType</a> TBAABaseTy = <a class="code" href="classclang_1_1QualType.html">QualType</a>(),</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>                          uint64_t TBAAOffset = 0);</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment"></span></div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment">  /// EmitStoreOfScalar - Store a scalar value to an address, taking</span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment">  /// care to appropriately convert from the memory representation to</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <span class="comment">  /// the LLVM value representation.  The l-value must be a simple</span></div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment">  /// l-value.  The isInit flag indicates whether this is an initialization.</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="comment">  /// If so, atomic qualifiers are ignored and the store is always non-atomic.</span></div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa3de7edefb050b883760e29af7e65f75">EmitStoreOfScalar</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <span class="keywordtype">bool</span> isInit=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="comment"></span></div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="comment">  /// EmitLoadOfLValue - Given an expression that represents a value lvalue,</span></div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <span class="comment">  /// this method emits the address of the lvalue, then loads the result as an</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> <span class="comment">  /// rvalue, returning the rvalue.</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6ec6fabfbe7aa87203af03a05ab5d157">EmitLoadOfLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> V, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#adafb32659a0bb7b82515e59b26c67a36">EmitLoadOfExtVectorElementLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> V);</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af960c64a77063b58d1e46b8a4988e1ac">EmitLoadOfBitfieldLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV);</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment"></span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> <span class="comment">  /// EmitStoreThroughLValue - Store the specified rvalue into the specified</span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment">  /// lvalue, where both are guaranteed to the have the same type, and that type</span></div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">  /// is 'Ty'.</span></div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aab00f3161bf4956de6c490615544a734">EmitStoreThroughLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Src, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> Dst, <span class="keywordtype">bool</span> isInit=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2fe14c3fd012ea15d168412c5b369d8d">EmitStoreThroughExtVectorComponentLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Src, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> Dst);</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment"></span></div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment">  /// EmitStoreThroughBitfieldLValue - Store Src into Dst with same constraints</span></div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment">  /// as EmitStoreThroughLValue.</span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="comment">  /// \param Result [out] - If non-null, this will be set to a Value* for the</span></div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="comment">  /// bit-field contents after the store, appropriate for use as the result of</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment">  /// an assignment to the bit-field.</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a044cb306d547bf06576fc693f633654f">EmitStoreThroughBitfieldLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Src, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> Dst,</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>                                       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> **Result=0);</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <span class="comment"></span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> <span class="comment">  /// Emit an l-value for an assignment (simple or compound) of complex type.</span></div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aaf50f762e9d34a08a2a58a72d1b260bd" title="Emit an l-value for an assignment (simple or compound) of complex type.">EmitComplexAssignmentLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *E);</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a559f87c87aea04c2cd360c305d60427c">EmitComplexCompoundAssignmentLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundAssignOperator.html">CompoundAssignOperator</a> *E);</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba0528cca6378d215a7661f8a0ba5154">EmitScalarCompooundAssignWithComplex</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundAssignOperator.html">CompoundAssignOperator</a> *E,</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>                                               <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *&Result);</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> </div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>   <span class="comment">// Note: only available for agg return types</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a545eb0e77d890696edabc24ae3a48885">EmitBinaryOperatorLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *E);</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a66fe5cd30a71baddf1e0f307a75580bc">EmitCompoundAssignmentLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundAssignOperator.html">CompoundAssignOperator</a> *E);</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>   <span class="comment">// Note: only available for agg return types</span></div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afb4efb5e2b2d3b9044ee914250db74d6">EmitCallExprLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>   <span class="comment">// Note: only available for agg return types</span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9906e0701ca9696a5ea1d63614dff70e">EmitVAArgExprLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VAArgExpr.html" title="VAArgExpr, used for the builtin function __builtin_va_arg.">VAArgExpr</a> *E);</div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a811bcfd5769bf9dc2ad7f62e9350dc56">EmitDeclRefLValue</a>(<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> *E);</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a81829808e9f35c20760c6c16e41a0dbd">EmitStringLiteralLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a> *E);</div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a30a4ad7355fdf9755ec73f59f83da13b">EmitObjCEncodeExprLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCEncodeExpr.html">ObjCEncodeExpr</a> *E);</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7e1a5d2ce9e9b37cca2d24ec5557c86d">EmitPredefinedLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PredefinedExpr.html" title="PredefinedExpr - [C99 6.4.2.2] - A predefined identifier such as func.">PredefinedExpr</a> *E);</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#acb251a4cc5868549ae822f2d47c4b5b0">EmitUnaryOpLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *E);</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a160641085422d2b1055bc91f8fc0f2fd">EmitArraySubscriptExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ArraySubscriptExpr.html" title="ArraySubscriptExpr - [C99 6.5.2.1] Array Subscripting.">ArraySubscriptExpr</a> *E,</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>                                 <span class="keywordtype">bool</span> Accessed = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab6062042f3c1e4ad3d20df6988113bbd">EmitExtVectorElementExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ExtVectorElementExpr.html">ExtVectorElementExpr</a> *E);</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae3b2616ff8e7d89d35c06848b68aacb3">EmitMemberExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *E);</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a35a134c06aa2409a0e79ae4afff5c747">EmitObjCIsaExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIsaExpr.html">ObjCIsaExpr</a> *E);</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a330d7a5e208d7175e508f477528a2163">EmitCompoundLiteralLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *E);</div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a139735b59f02e4eddc367257548d0ec5">EmitInitListLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1InitListExpr.html" title="Describes an C or C++ initializer list.">InitListExpr</a> *E);</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0ea992f4ddefae2a65642412be215003">EmitConditionalOperatorLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1AbstractConditionalOperator.html">AbstractConditionalOperator</a> *E);</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aafad3193bcb9ca583891de0978deaa46">EmitCastLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CastExpr.html">CastExpr</a> *E);</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab0974e6777685d412dc2bf43b305492c">EmitMaterializeTemporaryExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MaterializeTemporaryExpr.html" title="Represents a prvalue temporary that is written into memory so that a reference can bind to it...">MaterializeTemporaryExpr</a> *E);</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5e77606a3b6a435cd98855df6ef64d50">EmitOpaqueValueLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *e);</div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> </div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad04099f59689c86396530850a8842b43">EmitRValueForField</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> LV, <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FD, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> </div>
+<div class="line"><a name="l02001"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html"> 2001</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html">ConstantEmission</a> {</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>     llvm::PointerIntPair<llvm::Constant*, 1, bool> ValueAndIsReference;</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#abc7d24f32dc66cfbb36f992350a0fc12">ConstantEmission</a>(llvm::Constant *C, <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a7b9038e70f57c13522f47c29a3cf756f">isReference</a>)</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>       : ValueAndIsReference(C, isReference) {}</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l02006"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#abc7d24f32dc66cfbb36f992350a0fc12"> 2006</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#abc7d24f32dc66cfbb36f992350a0fc12">ConstantEmission</a>() {}</div>
+<div class="line"><a name="l02007"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a30969ca46356f3595657b02960c98c82"> 2007</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html">ConstantEmission</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a30969ca46356f3595657b02960c98c82">forReference</a>(llvm::Constant *C) {</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#abc7d24f32dc66cfbb36f992350a0fc12">ConstantEmission</a>(C, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>     }</div>
+<div class="line"><a name="l02010"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a1aa567434bd54b9de63ac7bdef00cea1"> 2010</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html">ConstantEmission</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a1aa567434bd54b9de63ac7bdef00cea1">forValue</a>(llvm::Constant *C) {</div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#abc7d24f32dc66cfbb36f992350a0fc12">ConstantEmission</a>(C, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>     }</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div>
+<div class="line"><a name="l02014"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#aaaaee1cee5d20ba795d2b758d6c12d22"> 2014</a></span>     LLVM_EXPLICIT <span class="keyword">operator</span> <a class="code" href="stdbool_8h.html#abb452686968e48b67397da5f97445f5b">bool</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ValueAndIsReference.getOpaqueValue() != 0; }</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> </div>
+<div class="line"><a name="l02016"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a7b9038e70f57c13522f47c29a3cf756f"> 2016</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a7b9038e70f57c13522f47c29a3cf756f">isReference</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ValueAndIsReference.getInt(); }</div>
+<div class="line"><a name="l02017"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#ac0c236dbbead38fcfd5bca138095e1fc"> 2017</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#ac0c236dbbead38fcfd5bca138095e1fc">getReferenceLValue</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1Expr.html">Expr</a> *refExpr)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>       assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a7b9038e70f57c13522f47c29a3cf756f">isReference</a>());</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>       <span class="keywordflow">return</span> CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac85064af11c2b350b51e373aa33f3f3e">MakeNaturalAlignAddrLValue</a>(ValueAndIsReference.getPointer(),</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>                                             refExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>());</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>     }</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> </div>
+<div class="line"><a name="l02023"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a4ec268ad03ce42150e7438dec69d4ce1"> 2023</a></span>     llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a4ec268ad03ce42150e7438dec69d4ce1">getValue</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>       assert(!<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction_1_1ConstantEmission.html#a7b9038e70f57c13522f47c29a3cf756f">isReference</a>());</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>       <span class="keywordflow">return</span> ValueAndIsReference.getPointer();</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>     }</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>   };</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> </div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>   ConstantEmission <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af61222a102a77466f7eafb73c82eea70">tryEmitAsConstant</a>(<a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *refExpr);</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> </div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3c0ca4a42ed136464cd04110b8043060">EmitPseudoObjectRValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PseudoObjectExpr.html">PseudoObjectExpr</a> *e,</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>                                 <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> slot = <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html#a0ebd86a7559fbac9e6da46663ecc1e78">AggValueSlot::ignored</a>());</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5ce7b313663af5e1ede59c29bc0fa4ac">EmitPseudoObjectLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PseudoObjectExpr.html">PseudoObjectExpr</a> *e);</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> </div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac23a0355d2d20770b02f2d92c5872c81">EmitIvarOffset</a>(<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="l02036"></a><span class="lineno"> 2036</span>                               <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar);</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0fe5273873e8ce1fab483cd99ed84000">EmitLValueForField</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1Base.html">Base</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a>* Field);</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abe8c1b279bf1d1f6b10e72f394dddd25">EmitLValueForLambdaField</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field);</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> <span class="comment"></span></div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="comment">  /// EmitLValueForFieldInitialization - Like EmitLValueForField, except that</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="comment">  /// if the Field is a reference, this will return the address of the reference</span></div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <span class="comment">  /// and not the address of the value stored in the reference.</span></div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8e2d33cb4583cb128c964a56c1ebd141">EmitLValueForFieldInitialization</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>                                           <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a>* Field);</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> </div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4357c93c47371c808bda8a2d1033424a">EmitLValueForIvar</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> ObjectTy,</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a>* <a class="code" href="classclang_1_1Base.html">Base</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Ivar,</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>                            <span class="keywordtype">unsigned</span> CVRQualifiers);</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> </div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0c0910294a1b4fe32bdeb1be57989bbc">EmitCXXConstructLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *E);</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad1d13446921a3b93db7f477cc8fcf142">EmitCXXBindTemporaryLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *E);</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac5330124ba9586c25199ceba4b228829">EmitLambdaLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LambdaExpr.html" title="A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...">LambdaExpr</a> *E);</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae39a300d445536ce605f20e9af50a855">EmitCXXTypeidLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXTypeidExpr.html">CXXTypeidExpr</a> *E);</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a368b3b60247cf18658f197a77ce503e3">EmitCXXUuidofLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXUuidofExpr.html">CXXUuidofExpr</a> *E);</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> </div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a194a70daa28c50242ee2846b31ec4e04">EmitObjCMessageExprLValue</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="l02057"></a><span class="lineno"> 2057</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa957d8aa0a8acf9e711c5de255cf9a15">EmitObjCIvarRefLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *E);</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa135b08f6a2cb7af7cf60c45829895c9">EmitStmtExprLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StmtExpr.html">StmtExpr</a> *E);</div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40c1bc1591864d2dc02d650579284d82">EmitPointerToDataMemberBinaryExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *E);</div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab8d4961d4562ad60fdd26c821e2f842d">EmitObjCSelectorLValue</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="l02061"></a><span class="lineno"> 2061</span>   <span class="keywordtype">void</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a397b4bde15ed6d0a2118dd2f73b5f908">EmitDeclRefExprDbgValue</a>(<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> *E, llvm::Constant *Init);</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> </div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>   <span class="comment">//                         Scalar Expression Emission</span></div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment"></span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment">  /// EmitCall - Generate a call of the given function, expecting the given</span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="comment">  /// result type, and using the given argument list which specifies both the</span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">  /// LLVM arguments and the types they were derived from.</span></div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> <span class="comment">  /// \param TargetDecl - If given, the decl of the function in a direct call;</span></div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="comment">  /// used to set attributes on the call (noreturn, etc.).</span></div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGen_1_1CGFunctionInfo.html">CGFunctionInfo</a> &FnInfo,</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>                   <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>,</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>                   <span class="keyword">const</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="l02077"></a><span class="lineno"> 2077</span>                   <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *TargetDecl = 0,</div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>                   llvm::Instruction **callOrInvoke = 0);</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> </div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41637beb876ec52a99f9f316445ff1bb">EmitCall</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> FnType, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</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> CallLoc,</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>                   <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>,</div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>                   <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd,</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>                   <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *TargetDecl = 0);</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2cb5c6b2c4097d1fe8f17b236a38ec00">EmitCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E,</div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>                       <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a> = <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>());</div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> </div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>   llvm::CallInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab55d82e1063f29b5c252f586c9c9bee9">EmitRuntimeCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>                                   <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>   llvm::CallInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab55d82e1063f29b5c252f586c9c9bee9">EmitRuntimeCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>                                   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value*></a> args,</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>                                   <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>   llvm::CallInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76d925109b30811e708f705a63541075">EmitNounwindRuntimeCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>                                           <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>   llvm::CallInst *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a76d925109b30811e708f705a63541075">EmitNounwindRuntimeCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>                                           <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value*></a> args,</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>                                           <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> </div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>   llvm::CallSite <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a44e7409b961b6723829abb1acd5e1db8">EmitCallOrInvoke</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>                                   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value *></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>                                   <span class="keyword">const</span> Twine &Name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>   llvm::CallSite <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a44e7409b961b6723829abb1acd5e1db8">EmitCallOrInvoke</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>                                   <span class="keyword">const</span> Twine &Name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>   llvm::CallSite <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>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>                                          <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value*></a> args,</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>                                          <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>   llvm::CallSite <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>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>                                          <span class="keyword">const</span> Twine &name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a48489db9a91c645ab0cfb4ff42a723e3" title="Emits a call or invoke to the given noreturn runtime function.">EmitNoreturnRuntimeCallOrInvoke</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *callee,</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>                                        <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value*></a> args);</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> </div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afa1ba31b8ae6dbe05f7264d63dbed92f">BuildAppleKextVirtualCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD, </div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>                                          <a class="code" href="classclang_1_1NestedNameSpecifier.html" title="Represents a C++ nested name specifier, such as "\::std::vector<int>::".">NestedNameSpecifier</a> *Qual,</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>                                          llvm::Type *Ty);</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>   </div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6f180f0ebce5cf14bd8282df14493e36">BuildAppleKextVirtualDestructorCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *DD,</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>                                                    <a class="code" href="namespaceclang.html#a8ce1c62f474552f6cfc7c340e573e157" title="C++ destructor types.">CXXDtorType</a> Type, </div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>                                                    <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD);</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> </div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2fe85c885aa79e232427f3aa6973f948">EmitCXXMemberCall</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD,</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</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> CallLoc,</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Callee,</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>                            <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>,</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This,</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *ImplicitParam,</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>                            <a class="code" href="classclang_1_1QualType.html">QualType</a> ImplicitParamTy,</div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>                            <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>                            <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd);</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a50221316407907ed3eae500ca54cae33">EmitCXXMemberCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMemberCallExpr.html">CXXMemberCallExpr</a> *E,</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>                                <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>);</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ace920f2ecd33b4961312cae5f321e888">EmitCXXMemberPointerCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMemberCallExpr.html">CXXMemberCallExpr</a> *E,</div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>                                       <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>);</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> </div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7d130f8d4fd24eba65279eae83adecd2">EmitCXXOperatorMemberCallee</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXOperatorCallExpr.html" title="A call to an overloaded operator written using operator syntax.">CXXOperatorCallExpr</a> *E,</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>                                            <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD,</div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>                                            <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *This);</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afc4766f77c0a6f6ced565b4700cbcce4">EmitCXXOperatorMemberCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXOperatorCallExpr.html" title="A call to an overloaded operator written using operator syntax.">CXXOperatorCallExpr</a> *E,</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD,</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>                                        <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>);</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> </div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa229091cd1f8b3c8e8dc46adfd6d835e">EmitCUDAKernelCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CUDAKernelCallExpr.html" title="Represents a call to a CUDA kernel function.">CUDAKernelCallExpr</a> *E,</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>                                 <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>);</div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> </div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> </div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa7e7d0c49f74bb92a2e3c650e0bcec11">EmitBuiltinExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD,</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>                          <span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> </div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a867b58505007645a03b1769271828bd1">EmitBlockCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1eb2b28a846f4bcb0c7db1f39813d1af">ReturnValue</a>);</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="comment"></span></div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="comment">  /// EmitTargetBuiltinExpr - Emit the given builtin call. Returns 0 if the call</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> <span class="comment">  /// is unhandled by the current target.</span></div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</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#a6b3c942de84c129fb232623fabb54e67">EmitTargetBuiltinExpr</a>(<span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> </div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6fbe75ab8ffdbd71eaac9b73f7ae3b17">EmitAArch64CompareBuiltinExpr</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Op, llvm::Type *Ty,</div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>                                              <span class="keyword">const</span> llvm::CmpInst::Predicate Fp,</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>                                              <span class="keyword">const</span> llvm::CmpInst::Predicate Ip,</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>                                              <span class="keyword">const</span> llvm::Twine &Name = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a6fbe75ab8ffdbd71eaac9b73f7ae3b17">EmitAArch64CompareBuiltinExpr</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Op, llvm::Type *Ty);</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a960f1bd03aeec52b8be83712ac68fcab">EmitAArch64BuiltinExpr</a>(<span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a902adf70a00c5f16fe9b87fff0745334">EmitARMBuiltinExpr</a>(<span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#afb8ce4edfc1854eacc957d63ecd568cc">EmitNeonCall</a>(llvm::Function *F,</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>                             <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<llvm::Value*></a> &O,</div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>                             <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>                             <span class="keywordtype">unsigned</span> shift = 0, <span class="keywordtype">bool</span> rightshift = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba61a6e6fa1f7907e663f54d568fb40c">EmitNeonSplat</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V, llvm::Constant *Idx);</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9c35f63e8d4c81f3c800864deba0da18">EmitNeonShiftVector</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V, llvm::Type *Ty,</div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>                                    <span class="keywordtype">bool</span> negateForRightShift);</div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a87aadf9219b5e866436e55228615ba81">EmitNeonRShiftImm</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Vec, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Amt,</div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>                                  llvm::Type *Ty, <span class="keywordtype">bool</span> usgn, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> </div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0d3c29eeaaac431f1dcab08f0c3bcf35">BuildVector</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value*></a> Ops);</div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac140bf346c7f317b8a27ff84fff8a021">EmitX86BuiltinExpr</a>(<span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7e1060d824c5c30dc6e331a5b13a8a29">EmitPPCBuiltinExpr</a>(<span class="keywordtype">unsigned</span> BuiltinID, <span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E);</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> </div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a22a433ca58db496f71158f5453b6154d">EmitObjCProtocolExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolExpr.html">ObjCProtocolExpr</a> *E);</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</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.">EmitObjCStringLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a> *E);</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a79d6242fb95fce150f494ca9935f6225">EmitObjCBoxedExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCBoxedExpr.html">ObjCBoxedExpr</a> *E);</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3ef822f10ec39b7bf5f20f07995d400f">EmitObjCArrayLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *E);</div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a17fc9ab628066b94018efc79b87c0b6b">EmitObjCDictionaryLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *E);</div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a871e05ff911376c4b10b082c5b88a36c">EmitObjCCollectionLiteral</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MethodWithObjects);</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</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.">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="l02184"></a><span class="lineno"> 2184</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a08d7699a25157488e38e0117a78a6f5b">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="l02185"></a><span class="lineno"> 2185</span>                              <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a> Return = <a class="code" href="classclang_1_1CodeGen_1_1ReturnValueSlot.html">ReturnValueSlot</a>());</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="comment"></span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment">  /// Retrieves the default cleanup kind for an ARC cleanup.</span></div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> <span class="comment">  /// Except under -fobjc-arc-eh, ARC cleanups are normal-only.</span></div>
+<div class="line"><a name="l02189"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2accba30944ea68f763f67e3d31baa0a"> 2189</a></span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2accba30944ea68f763f67e3d31baa0a">getARCCleanupKind</a>() {</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</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#a054eb00391038519d37236032f1ebfe5">getCodeGenOpts</a>().ObjCAutoRefCountExceptions</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>              ? <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a> : <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">NormalCleanup</a>;</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>   }</div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> </div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>   <span class="comment">// ARC primitives.</span></div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac005c2c2b8bea21c81fbb348e80611b9">EmitARCInitWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr);</div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aafb0889b796846ed4e1efa47ca06338b">EmitARCDestroyWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr);</div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae8c37e377ab7954140298f71bda818b1">EmitARCLoadWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr);</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad15b229b97c9f1c2194ec720af286730" title="i8* @objc_loadWeakRetained(i8** addr)">EmitARCLoadWeakRetained</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr);</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba3bbef5c415ca021de407fd87f92038">EmitARCStoreWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr,</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>                                 <span class="keywordtype">bool</span> ignored);</div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aada507d5c7d22479abaa65fa3a1641da">EmitARCCopyWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dst, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src);</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a9d627edce178fb92e318417785fb3c7a">EmitARCMoveWeak</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *dst, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *src);</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a403370a4339d7bb5aff0701ecf096de0">EmitARCRetainAutorelease</a>(<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>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aba777669cee08ad5ad22e8eb8b2bc03a">EmitARCRetainAutoreleaseNonBlock</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40497037ed1f343c5ef7aa5b2dc652f5">EmitARCStoreStrong</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> lvalue, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value,</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>                                   <span class="keywordtype">bool</span> resultIgnored);</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2863540e649e702b48a34173d7ead2bd">EmitARCStoreStrongCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value,</div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>                                       <span class="keywordtype">bool</span> resultIgnored);</div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a294eb3b71d952ac195a575a4c616b518">EmitARCRetain</a>(<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>, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab8f93d18f0518fc32858adb46f0ac861">EmitARCRetainNonBlock</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8712b1e93f3e32b6fbff04996a6fb371">EmitARCRetainBlock</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <span class="keywordtype">bool</span> mandatory);</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af9ce639e02760d47c591c756ab9c83d9">EmitARCDestroyStrong</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *addr, <a class="code" href="namespaceclang_1_1CodeGen.html#abd4c22c5bca7ad596b2a7bdcfe7dcea0" title="Does an ARC strong l-value have precise lifetime?">ARCPreciseLifetime_t</a> precise);</div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a585a58940cba78b5edc132481e3af6ec">EmitARCRelease</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value, <a class="code" href="namespaceclang_1_1CodeGen.html#abd4c22c5bca7ad596b2a7bdcfe7dcea0" title="Does an ARC strong l-value have precise lifetime?">ARCPreciseLifetime_t</a> precise);</div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2c0bc45bc01991e548dbc6535427c275">EmitARCAutorelease</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a27c7debe106b52406d15aa004e73e71e">EmitARCAutoreleaseReturnValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0bc089e441ae4fbb13dd119349db633a">EmitARCRetainAutoreleaseReturnValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40725fabb5a39651b7b2589cc67f9cd7">EmitARCRetainAutoreleasedReturnValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value);</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> </div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>   std::pair<LValue,llvm::Value*></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0ef8a2405698ceeb0f76138b79ab6def">EmitARCStoreAutoreleasing</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *e);</div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>   std::pair<LValue,llvm::Value*></div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a40497037ed1f343c5ef7aa5b2dc652f5">EmitARCStoreStrong</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *e, <span class="keywordtype">bool</span> ignored);</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> </div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a514f9adcddd61f2dcde49d3d6cf7ecff">EmitObjCThrowOperand</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>);</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> </div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a97e5d057bbed7f969fd32c21fc5980be">EmitObjCProduceObject</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr);</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a05d91b79ac8319906346cdb3b3ad6948">EmitObjCConsumeObject</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr);</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad0d203901d53b05c0fbc891489254c35">EmitObjCExtendObjectLifetime</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr);</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> </div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae7d99da876a93f0638b61385ea5a1166">EmitARCExtendBlockObject</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>);</div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a89df616486925c940d4d6d2388feacbe">EmitARCRetainScalarExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>);</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2c529514891a3075184ecace50c54748">EmitARCRetainAutoreleaseScalarExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a62d0b4c2a483d355a4d740ded606188f" title="Matches expressions.">expr</a>);</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> </div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aa59fc1074cb261290bcca01d6aa425c9">EmitARCIntrinsicUse</a>(<a class="code" href="classllvm_1_1ArrayRef.html">llvm::ArrayRef<llvm::Value*></a> values);</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> </div>
+<div class="line"><a name="l02236"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a763a89a99e4b6b63fedbccd55a1a90e9"> 2236</a></span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a763a89a99e4b6b63fedbccd55a1a90e9">destroyARCStrongImprecise</a>;</div>
+<div class="line"><a name="l02237"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aed2746a127c4a525fffc41bee41b0476"> 2237</a></span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#aed2746a127c4a525fffc41bee41b0476">destroyARCStrongPrecise</a>;</div>
+<div class="line"><a name="l02238"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1faef89e589b0be992e3ac6f6d76c468"> 2238</a></span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a84d444e891ff658b166431b6ffe97aa1">Destroyer</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1faef89e589b0be992e3ac6f6d76c468">destroyARCWeak</a>;</div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> </div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#af1d996056b096397027645a322afb275">EmitObjCAutoreleasePoolPop</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr); </div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abcc1c2097998ae1280af73ef50cb2407">EmitObjCAutoreleasePoolPush</a>();</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a41fdaabbb91f5804b0b42acbb2442295">EmitObjCMRRAutoreleasePoolPush</a>();</div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a36779ae528491c75e06400da08db0971">EmitObjCAutoreleasePoolCleanup</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr);</div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae537866d37aab5d16ccdc203dcde78a6">EmitObjCMRRAutoreleasePoolPop</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Ptr); </div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="comment"></span></div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> <span class="comment">  /// \brief Emits a reference binding to the passed in expression.</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4032dd7767cd564a23c06daf0793ec21" title="Emits a reference binding to the passed in expression.">EmitReferenceBindingToExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> </div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>   <span class="comment">//                           Expression Emission</span></div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> </div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>   <span class="comment">// Expressions are broken into three classes: scalar, complex, aggregate.</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment"></span></div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="comment">  /// EmitScalarExpr - Emit the computation of the specified expression of LLVM</span></div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="comment">  /// scalar type, returning the result.</span></div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</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#ada2bbe60d33f290a0ef688d71c491ca8">EmitScalarExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E , <span class="keywordtype">bool</span> IgnoreResultAssign = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="comment"></span></div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="comment">  /// EmitScalarConversion - Emit a conversion from the specified type to the</span></div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="comment">  /// specified destination type, both of which are LLVM scalar types.</span></div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</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#a743572fc8d88150cac9bd1fdd1947bc5">EmitScalarConversion</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Src, <a class="code" href="classclang_1_1QualType.html">QualType</a> SrcTy,</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>                                     <a class="code" href="classclang_1_1QualType.html">QualType</a> DstTy);</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> <span class="comment"></span></div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="comment">  /// EmitComplexToScalarConversion - Emit a conversion from the specified</span></div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="comment">  /// complex type to the specified destination type, where the destination type</span></div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="comment">  /// is an LLVM scalar type.</span></div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</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#a80412f84a0612b17b641b15a8959988a">EmitComplexToScalarConversion</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a> Src, <a class="code" href="classclang_1_1QualType.html">QualType</a> SrcTy,</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>                                              <a class="code" href="classclang_1_1QualType.html">QualType</a> DstTy);</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> </div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="comment"></span></div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> <span class="comment">  /// EmitAggExpr - Emit the computation of the specified expression</span></div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="comment">  /// of aggregate type.  The result is computed into the given slot,</span></div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="comment">  /// which may be null to indicate that the value is not needed.</span></div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad58a7f0f413e2aea5174df10adc6d1b5">EmitAggExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> AS);</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="comment"></span></div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="comment">  /// EmitAggExprToLValue - Emit the computation of the specified expression of</span></div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="comment">  /// aggregate type into a temporary LValue.</span></div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a77ac4a960c1c6a2e758738423648ce80">EmitAggExprToLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="comment"></span></div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="comment">  /// EmitGCMemmoveCollectable - Emit special API for structs with object</span></div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="comment">  /// pointers.</span></div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a61d52437c90ac6837b6010f898cbac39">EmitGCMemmoveCollectable</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *DestPtr, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *SrcPtr,</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>                                 <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="comment"></span></div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="comment">  /// EmitExtendGCLifetime - Given a pointer to an Objective-C object,</span></div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="comment">  /// make sure it survives garbage collection until this point.</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a80dd70a938a3c1881d46add358ea7efc">EmitExtendGCLifetime</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<span class="keywordtype">object</span>);</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="comment"></span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="comment">  /// EmitComplexExpr - Emit the computation of the specified expression of</span></div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="comment">  /// complex type, returning the result.</span></div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a92660b9969aa3da022a8381e6debb48b">EmitComplexExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>                                 <span class="keywordtype">bool</span> IgnoreReal = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>                                 <span class="keywordtype">bool</span> IgnoreImag = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="comment"></span></div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="comment">  /// EmitComplexExprIntoLValue - Emit the given expression of complex</span></div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="comment">  /// type and place its result into the specified l-value.</span></div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1bd5d8252eada9df4a531d3ca8bf6500">EmitComplexExprIntoLValue</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> dest, <span class="keywordtype">bool</span> isInit);</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="comment"></span></div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="comment">  /// EmitStoreOfComplex - Store a complex number into the specified l-value.</span></div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="comment"></span>  <span class="keywordtype">void</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>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a> V, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> dest, <span class="keywordtype">bool</span> isInit);</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="comment"></span></div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="comment">  /// EmitLoadOfComplex - Load a complex number from the specified l-value.</span></div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae417ed4971c18c5ce0607e1be62ec117">ComplexPairTy</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a26d8547dd8e031970116491629669c39" title="EmitLoadOfComplex - Load a complex number from the specified l-value.">EmitLoadOfComplex</a>(<a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> src, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> loc);</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="comment"></span></div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="comment">  /// CreateStaticVarDecl - Create a zero-initialized LLVM global for</span></div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> <span class="comment">  /// a static local variable.</span></div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="comment"></span>  llvm::GlobalVariable *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a81cef08d5096569a5fdfc1d4bdffd268">CreateStaticVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D,</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>                                             <span class="keyword">const</span> <span class="keywordtype">char</span> *Separator,</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>                                        llvm::GlobalValue::LinkageTypes <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>);</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="comment"></span></div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="comment">  /// AddInitializerToStaticVarDecl - Add the initializer for 'D' to the</span></div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="comment">  /// global variable that has already been created for it.  If the initializer</span></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="comment">  /// has a different type than GV does, this may free GV and return a different</span></div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="comment">  /// one.  Otherwise it just returns GV.</span></div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="comment"></span>  llvm::GlobalVariable *</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>   <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ab60eb920e1950cfb069c0137229aa521">AddInitializerToStaticVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D,</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>                                 llvm::GlobalVariable *GV);</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> </div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="comment"></span></div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="comment">  /// EmitCXXGlobalVarDeclInit - Create the initializer for a C++</span></div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="comment">  /// variable with global storage.</span></div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac7254f2b47376c2fc98ff7c3f2efd496">EmitCXXGlobalVarDeclInit</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D, llvm::Constant *DeclPtr,</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>                                 <span class="keywordtype">bool</span> PerformInit);</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="comment"></span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="comment">  /// Call atexit() with a function that passes the given argument to</span></div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="comment">  /// the given function.</span></div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a412eef5dd1fc70283296f61a77668663" title="Register a global destructor using the C atexit runtime function.">registerGlobalDtorWithAtExit</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D, llvm::Constant *fn,</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>                                     llvm::Constant *addr);</div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> <span class="comment"></span></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="comment">  /// Emit code in this function to perform a guarded variable</span></div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="comment">  /// initialization.  Guarded initializations are used when it's not</span></div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="comment">  /// possible to prove that an initialization will be done exactly</span></div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="comment">  /// once, e.g. with a static local variable or a static data member</span></div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> <span class="comment">  /// of a class template.</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0622169fef3f27dc30a3591bcedd7afd">EmitCXXGuardedInit</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> &D, llvm::GlobalVariable *DeclPtr,</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>                           <span class="keywordtype">bool</span> PerformInit);</div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="comment"></span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="comment">  /// GenerateCXXGlobalInitFunc - Generates code for initializing global</span></div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="comment">  /// variables.</span></div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5b6894248ed2ae48338a957220bcea31">GenerateCXXGlobalInitFunc</a>(llvm::Function *Fn,</div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>                                  <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Constant *></a> Decls,</div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>                                  llvm::GlobalVariable *Guard = 0);</div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <span class="comment"></span></div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="comment">  /// GenerateCXXGlobalDtorsFunc - Generates code for destroying global</span></div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="comment">  /// variables.</span></div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ad60d7cba330c0662ab13b5daf1020563">GenerateCXXGlobalDtorsFunc</a>(llvm::Function *Fn,</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>                                   <span class="keyword">const</span> std::vector<std::pair<llvm::WeakVH,</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>                                   llvm::Constant*> > &DtorsAndObjects);</div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> </div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a805b68931b9fe3307a1ec2e294f26d9c" title="Emit the code necessary to initialize the given global variable.">GenerateCXXGlobalVarDeclInitFunc</a>(llvm::Function *Fn,</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D,</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>                                         llvm::GlobalVariable *Addr,</div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>                                         <span class="keywordtype">bool</span> PerformInit);</div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> </div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a0a37f4ebe1d91b4b093ca0221ce0aecf">EmitCXXConstructExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> Dest);</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>   </div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#abade08d2208f8a9d20644c8db9ab15ca">EmitSynthesizedCXXCopyCtor</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Dest, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Src,</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Exp);</div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> </div>
+<div class="line"><a name="l02360"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a83deaf3d8bd449ba59ee5c966b22da09"> 2360</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a83deaf3d8bd449ba59ee5c966b22da09">enterFullExpression</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *E) {</div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>     <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1ExprWithCleanups.html#a870e740f3e8b4c017afaef7d04da0639">getNumObjects</a>() == 0) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>     <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a39c36e06af36578116db87f31a8dda09">enterNonTrivialFullExpression</a>(E);</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>   }</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a39c36e06af36578116db87f31a8dda09">enterNonTrivialFullExpression</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *E);</div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> </div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a31d8705d0d5c05fbb30a1baa4dc5bdad">EmitCXXThrowExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXThrowExpr.html" title="A C++ throw-expression (C++ [except.throw]).">CXXThrowExpr</a> *E, <span class="keywordtype">bool</span> KeepInsertionPoint = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> </div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a11305d4b940e2aa9f49b473684109f75">EmitLambdaExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LambdaExpr.html" title="A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...">LambdaExpr</a> *E, <a class="code" href="classclang_1_1CodeGen_1_1AggValueSlot.html" title="An aggregate value slot.">AggValueSlot</a> Dest);</div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> </div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>   <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a032c5651526a916a663525ace1fe3874">EmitAtomicExpr</a>(<a class="code" href="classclang_1_1AtomicExpr.html">AtomicExpr</a> *E, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Dest = 0);</div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span> </div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>   <span class="comment">//                         Annotations Emission</span></div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span> <span class="comment"></span></div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> <span class="comment">  /// Emit an annotation call (intrinsic or builtin).</span></div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</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#a6a4896a6edaea5660540b55f5f9289dc" title="Emit an annotation call (intrinsic or builtin).">EmitAnnotationCall</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *AnnotationFn,</div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>                                   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *AnnotatedVal,</div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>                                   StringRef AnnotationStr,</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</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> Location);</div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span> <span class="comment"></span></div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> <span class="comment">  /// Emit local annotations for the local variable V, declared by D.</span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a42310ca5cdaef5258d0c114d22995a11" title="Emit local annotations for the local variable V, declared by D.">EmitVarAnnotations</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V);</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> <span class="comment"></span></div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span> <span class="comment">  /// Emit field annotations for the given field & value. Returns the</span></div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span> <span class="comment">  /// annotation result.</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</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#ab096b0cfc774575f2460e6b4a00aaa7b">EmitFieldAnnotations</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *D, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V);</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> </div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>   <span class="comment">//                             Internal Helpers</span></div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span> <span class="comment"></span></div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> <span class="comment">  /// ContainsLabel - Return true if the statement contains a label in it.  If</span></div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> <span class="comment">  /// this statement is not executed normally, it not containing a label means</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> <span class="comment">  /// that we can just remove the code.</span></div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a16d5796516e60d010f4de5b0dd44889c">ContainsLabel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S, <span class="keywordtype">bool</span> IgnoreCaseStmts = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span> <span class="comment"></span></div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span> <span class="comment">  /// containsBreak - Return true if the statement contains a break out of it.</span></div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span> <span class="comment">  /// If the statement (recursively) contains a switch or loop with a break</span></div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span> <span class="comment">  /// inside of it, this is fine.</span></div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ac30a9ad1c6ee47f608ca9dca85dd64a7">containsBreak</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S);</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>   <span class="comment"></span></div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span> <span class="comment">  /// ConstantFoldsToSimpleInteger - If the specified expression does not fold</span></div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span> <span class="comment">  /// to a constant, or if it does but contains a label, return false.  If it</span></div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span> <span class="comment">  /// constant folds return true and set the boolean result in Result.</span></div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2790a6f4abb2cac9b21d8802d8ae4e87">ConstantFoldsToSimpleInteger</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Cond, <span class="keywordtype">bool</span> &Result);</div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span> <span class="comment"></span></div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span> <span class="comment">  /// ConstantFoldsToSimpleInteger - If the specified expression does not fold</span></div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span> <span class="comment">  /// to a constant, or if it does but contains a label, return false.  If it</span></div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span> <span class="comment">  /// constant folds return true and set the folded value.</span></div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a2790a6f4abb2cac9b21d8802d8ae4e87">ConstantFoldsToSimpleInteger</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Cond, llvm::APSInt &Result);</div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>   <span class="comment"></span></div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span> <span class="comment">  /// EmitBranchOnBoolExpr - Emit a branch on a boolean condition (e.g. for an</span></div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> <span class="comment">  /// if statement) to the specified blocks.  Based on the condition, this might</span></div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span> <span class="comment">  /// try to simplify the codegen of the conditional based on the branch.</span></div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1ba4454b7714d95e6eb97d30e299de61">EmitBranchOnBoolExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Cond, llvm::BasicBlock *TrueBlock,</div>
+<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>                             llvm::BasicBlock *FalseBlock);</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span> <span class="comment"></span></div>
+<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span> <span class="comment">  /// \brief Emit a description of a type in a format suitable for passing to</span></div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span> <span class="comment">  /// a runtime sanitizer handler.</span></div>
+<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span> <span class="comment"></span>  llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a5d3e36c8d37b4e4f5789f523108bf674" title="Emit a description of a type in a format suitable for passing to a runtime sanitizer handler...">EmitCheckTypeDescriptor</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span> <span class="comment"></span></div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span> <span class="comment">  /// \brief Convert a value into a format suitable for passing to a runtime</span></div>
+<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span> <span class="comment">  /// sanitizer handler.</span></div>
+<div class="line"><a name="l02425"></a><span class="lineno"> 2425</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#ab4991fe6ac7074a983161ec561d3372a" title="Convert a value into a format suitable for passing to a runtime sanitizer handler.">EmitCheckValue</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *V);</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span> <span class="comment"></span></div>
+<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span> <span class="comment">  /// \brief Emit a description of a source location in a format suitable for</span></div>
+<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span> <span class="comment">  /// passing to a runtime sanitizer handler.</span></div>
+<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span> <span class="comment"></span>  llvm::Constant *<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a365b1957a3e5c4d666b1ecd777b86cc6" title="Emit a description of a source location in a format suitable for passing to a runtime sanitizer handl...">EmitCheckSourceLocation</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span> <span class="comment"></span></div>
+<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span> <span class="comment">  /// \brief Specify under what conditions this check can be recovered</span></div>
+<div class="line"><a name="l02432"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349da"> 2432</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349da" title="Specify under what conditions this check can be recovered.">CheckRecoverableKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span> <span class="comment">    /// Always terminate program execution if this check fails</span></div>
+<div class="line"><a name="l02434"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daacde36f05d791b57ca53015f98090644f"> 2434</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daacde36f05d791b57ca53015f98090644f" title="Always terminate program execution if this check fails.">CRK_Unrecoverable</a>,<span class="comment"></span></div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span> <span class="comment">    /// Check supports recovering, allows user to specify which</span></div>
+<div class="line"><a name="l02436"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daade9f755044677d5aa1ef967325abca54"> 2436</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daade9f755044677d5aa1ef967325abca54" title="Check supports recovering, allows user to specify which.">CRK_Recoverable</a>,<span class="comment"></span></div>
+<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span> <span class="comment">    /// Runtime conditionally aborts, always need to support recovery.</span></div>
+<div class="line"><a name="l02438"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daaf8ec8314d1aa3b70dc6d1604f5767d27"> 2438</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349daaf8ec8314d1aa3b70dc6d1604f5767d27" title="Runtime conditionally aborts, always need to support recovery.">CRK_AlwaysRecoverable</a></div>
+<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>   };</div>
+<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span> <span class="comment"></span></div>
+<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span> <span class="comment">  /// \brief Create a basic block that will call a handler function in a</span></div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span> <span class="comment">  /// sanitizer runtime with the provided arguments, and create a conditional</span></div>
+<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span> <span class="comment">  /// branch to it.</span></div>
+<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a875a52f551ce966db02aaef2dae72c62" title="Create a basic block that will call a handler function in a sanitizer runtime with the provided argum...">EmitCheck</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Checked, StringRef CheckName,</div>
+<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>                  <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Constant *></a> StaticArgs,</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>                  <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<llvm::Value *></a> DynamicArgs,</div>
+<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>                  <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a4f34b3f7004d2d19c609c90b3a7349da" title="Specify under what conditions this check can be recovered.">CheckRecoverableKind</a> Recoverable);</div>
+<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span> <span class="comment"></span></div>
+<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span> <span class="comment">  /// \brief Create a basic block that will call the trap intrinsic, and emit a</span></div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span> <span class="comment">  /// conditional branch to it, for the -ftrapv checks.</span></div>
+<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#ae35eb59c6498c00be30a765bee62d3fe" title="Create a basic block that will call the trap intrinsic, and emit a conditional branch to it...">EmitTrapCheck</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Checked);</div>
+<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span> <span class="comment"></span></div>
+<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span> <span class="comment">  /// EmitCallArg - Emit a single call argument.</span></div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7bc8ff8f3e706c49a171712be9c8a6d3" title="EmitCallArg - Emit a single call argument.">EmitCallArg</a>(<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &args, <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgType);</div>
+<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span> <span class="comment"></span></div>
+<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span> <span class="comment">  /// EmitDelegateCallArg - We are performing a delegate call; that</span></div>
+<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span> <span class="comment">  /// is, the current function is delegating to another one.  Produce</span></div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span> <span class="comment">  /// a r-value suitable for passing the given parameter.</span></div>
+<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a3c6a1515396e7d07ad2584353b019302">EmitDelegateCallArg</a>(<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a> &args, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *param,</div>
+<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>                            <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> loc);</div>
+<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span> <span class="comment"></span></div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span> <span class="comment">  /// SetFPAccuracy - Set the minimum required accuracy of the given floating</span></div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span> <span class="comment">  /// point operation, expressed as the maximum relative error in ulp.</span></div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a77eec71489e1a9b898f43f6ba960fa61">SetFPAccuracy</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *Val, <span class="keywordtype">float</span> Accuracy);</div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span> </div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>   llvm::MDNode *getRangeForLoadFromType(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>   <span class="keywordtype">void</span> EmitReturnOfRValue(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> RV, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty);</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span> <span class="comment"></span></div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span> <span class="comment">  /// ExpandTypeFromArgs - Reconstruct a structure of type \arg Ty</span></div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span> <span class="comment">  /// from function arguments into \arg Dst. See ABIArgInfo::Expand.</span></div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span> <span class="comment">  /// \param AI - The first function argument of the expansion.</span></div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span> <span class="comment">  /// \return The argument following the last expanded function</span></div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span> <span class="comment">  /// argument.</span></div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span> <span class="comment"></span>  llvm::Function::arg_iterator</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>   ExpandTypeFromArgs(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty, <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> Dst,</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>                      llvm::Function::arg_iterator AI);</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span> <span class="comment"></span></div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span> <span class="comment">  /// ExpandTypeToArgs - Expand an RValue \arg Src, with the LLVM type for \arg</span></div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span> <span class="comment">  /// Ty, into individual arguments on the provided vector \arg Args. See</span></div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span> <span class="comment">  /// ABIArgInfo::Expand.</span></div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span> <span class="comment"></span>  <span class="keywordtype">void</span> ExpandTypeToArgs(<a class="code" href="classclang_1_1QualType.html">QualType</a> Ty, <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> Src,</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>                         <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<llvm::Value *></a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>                         llvm::FunctionType *IRFuncTy);</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> </div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a>* EmitAsmInput(<span class="keyword">const</span> <a class="code" href="structclang_1_1TargetInfo_1_1ConstraintInfo.html">TargetInfo::ConstraintInfo</a> &Info,</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>                             <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *InputExpr, std::string &ConstraintStr);</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span> </div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>   <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a>* EmitAsmInputLValue(<span class="keyword">const</span> <a class="code" href="structclang_1_1TargetInfo_1_1ConstraintInfo.html">TargetInfo::ConstraintInfo</a> &Info,</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>                                   <a class="code" href="classclang_1_1CodeGen_1_1LValue.html">LValue</a> InputValue, <a class="code" href="classclang_1_1QualType.html">QualType</a> InputType,</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>                                   std::string &ConstraintStr,</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>                                   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span> <span class="comment"></span></div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span> <span class="comment">  /// EmitCallArgs - Emit call arguments for a function.</span></div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span> <span class="comment">  /// The CallArgTypeInfo parameter is used for iterating over the known</span></div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span> <span class="comment">  /// argument types of the function being called.</span></div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span> <span class="comment"></span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>   <span class="keywordtype">void</span> EmitCallArgs(<a class="code" href="classclang_1_1CodeGen_1_1CallArgList.html">CallArgList</a>& <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, <span class="keyword">const</span> T* CallArgTypeInfo,</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>                     <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgBeg,</div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>                     <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> ArgEnd,</div>
+<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>                     <span class="keywordtype">bool</span> ForceColumnInfo = <span class="keyword">false</span>) {</div>
+<div class="line"><a name="l02503"></a><span class="lineno"> 2503</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="l02504"></a><span class="lineno"> 2504</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> CallLoc;</div>
+<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>     <span class="keywordflow">if</span> (DI) CallLoc = DI-><a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html#a17952f0cbea629e4a45dd92d9d13d877" title="getLocation - Return the current source location.">getLocation</a>();</div>
+<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span> </div>
+<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>     <a class="code" href="classclang_1_1ConstExprIterator.html">CallExpr::const_arg_iterator</a> Arg = ArgBeg;</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span> </div>
+<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>     <span class="comment">// First, use the argument types that the type info knows about</span></div>
+<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>     <span class="keywordflow">if</span> (CallArgTypeInfo) {</div>
+<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>       <span class="keywordflow">for</span> (<span class="keyword">typename</span> T::arg_type_iterator I = CallArgTypeInfo->arg_type_begin(),</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>            E = CallArgTypeInfo->arg_type_end(); I != E; ++I, ++Arg) {</div>
+<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>         assert(Arg != ArgEnd && <span class="stringliteral">"Running over edge of argument list!"</span>);</div>
+<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>         <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgType = *I;</div>
+<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span> <span class="preprocessor"></span>        <a class="code" href="classclang_1_1QualType.html">QualType</a> ActualArgType = Arg-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>         <span class="keywordflow">if</span> (ArgType-><a class="code" href="classclang_1_1Type.html#a1c0038a55083ee0a292a020038ee04d8">isPointerType</a>() && ActualArgType-><a class="code" href="classclang_1_1Type.html#a1c0038a55083ee0a292a020038ee04d8">isPointerType</a>()) {</div>
+<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>           <a class="code" href="classclang_1_1QualType.html">QualType</a> ActualBaseType =</div>
+<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>             ActualArgType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType();</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>           <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgBaseType =</div>
+<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>             ArgType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType();</div>
+<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>           <span class="keywordflow">if</span> (ArgBaseType-><a class="code" href="classclang_1_1Type.html#af8518d4e36dad6c248aac75a3a169022">isVariableArrayType</a>()) {</div>
+<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>             <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *VAT =</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>                 <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#af653315eb87efaa63a3169c1af527ba8">getAsVariableArrayType</a>(ActualBaseType)) {</div>
+<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>               <span class="keywordflow">if</span> (!VAT->getSizeExpr())</div>
+<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>                 ActualArgType = ArgType;</div>
+<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>             }</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>           }</div>
+<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>         }</div>
+<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>         assert(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a8a474f8f10090f44fc3e331d1e4b9ce0">getContext</a>().getCanonicalType(ArgType.<a class="code" href="classclang_1_1QualType.html#ab6a2e89b5fcb1618aaef3a38563b10e4">getNonReferenceType</a>()).</div>
+<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>                getTypePtr() ==</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</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>(ActualArgType).<a class="code" href="classclang_1_1CanQual.html#ade6897b3c823f8f586ee6f677d8ac15c" title="Retrieve the underlying type pointer, which refers to a canonical type.">getTypePtr</a>() &&</div>
+<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>                <span class="stringliteral">"type mismatch in call argument!"</span>);</div>
+<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span> <span class="preprocessor"></span>        <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7bc8ff8f3e706c49a171712be9c8a6d3" title="EmitCallArg - Emit a single call argument.">EmitCallArg</a>(Args, *Arg, ArgType);</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> </div>
+<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>         <span class="comment">// Each argument expression could modify the debug</span></div>
+<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>         <span class="comment">// location. Restore it.</span></div>
+<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>         <span class="keywordflow">if</span> (DI) DI-><a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html#a49c5017a02ba7fb50519fa4ecf39c0eb">EmitLocation</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, CallLoc, ForceColumnInfo);</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>       }</div>
+<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span> </div>
+<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>       <span class="comment">// Either we've emitted all the call args, or we have a call to a</span></div>
+<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>       <span class="comment">// variadic function.</span></div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>       assert((Arg == ArgEnd || CallArgTypeInfo->isVariadic()) &&</div>
+<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>              <span class="stringliteral">"Extra arguments in non-variadic function!"</span>);</div>
+<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span> </div>
+<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>     }</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span> </div>
+<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>     <span class="comment">// If we still have any arguments, emit them using the type of the argument.</span></div>
+<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>     <span class="keywordflow">for</span> (; Arg != ArgEnd; ++Arg) {</div>
+<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>       <a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a7bc8ff8f3e706c49a171712be9c8a6d3" title="EmitCallArg - Emit a single call argument.">EmitCallArg</a>(Args, *Arg, Arg-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>());</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span> </div>
+<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>       <span class="comment">// Restore the debug location.</span></div>
+<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>       <span class="keywordflow">if</span> (DI) DI-><a class="code" href="classclang_1_1CodeGen_1_1CGDebugInfo.html#a49c5017a02ba7fb50519fa4ecf39c0eb">EmitLocation</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>, CallLoc, ForceColumnInfo);</div>
+<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>     }</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>   }</div>
+<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span> </div>
+<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>   <span class="keyword">const</span> TargetCodeGenInfo &getTargetHooks()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l02559"></a><span class="lineno"> 2559</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#ac098ad9054632d2c6c4bf4c243cb04b1">getTargetCodeGenInfo</a>();</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>   }</div>
+<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span> </div>
+<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>   <span class="keywordtype">void</span> EmitDeclMetadata();</div>
+<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span> </div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>   CodeGenModule::ByrefHelpers *</div>
+<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>   buildByrefHelpers(llvm::StructType &byrefType,</div>
+<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>                     <span class="keyword">const</span> AutoVarEmission &emission);</div>
+<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span> </div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>   <span class="keywordtype">void</span> AddObjCARCExceptionMetadata(llvm::Instruction *Inst);</div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span> <span class="comment"></span></div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span> <span class="comment">  /// GetPointeeAlignment - Given an expression with a pointer type, emit the</span></div>
+<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span> <span class="comment">  /// value and compute our best estimate of the alignment of the pointee.</span></div>
+<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span> <span class="comment"></span>  std::pair<llvm::Value*, unsigned> EmitPointerWithAlignment(<span class="keyword">const</span> Expr *Addr);</div>
+<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span> };</div>
+<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span> <span class="comment"></span></div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span> <span class="comment">/// Helper class with most of the code for saving a value for a</span></div>
+<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span> <span class="comment">/// conditional expression cleanup.</span></div>
+<div class="line"><a name="l02577"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html"> 2577</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html">DominatingLLVMValue</a> {</div>
+<div class="line"><a name="l02578"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762"> 2578</a></span>   <span class="keyword">typedef</span> llvm::PointerIntPair<llvm::Value*, 1, bool> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a>;</div>
+<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span> <span class="comment"></span></div>
+<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span> <span class="comment">  /// Answer whether the given value needs extra work to be saved.</span></div>
+<div class="line"><a name="l02581"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#aa6688710de332fbf53ef5ef4bee3c866"> 2581</a></span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#aa6688710de332fbf53ef5ef4bee3c866" title="Answer whether the given value needs extra work to be saved.">needsSaving</a>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value) {</div>
+<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>     <span class="comment">// If it's not an instruction, we don't need to save.</span></div>
+<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>     <span class="keywordflow">if</span> (!isa<llvm::Instruction>(value)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span> </div>
+<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>     <span class="comment">// If it's an instruction in the entry block, we don't need to save.</span></div>
+<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>     llvm::BasicBlock *block = cast<llvm::Instruction>(value)->getParent();</div>
+<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>     <span class="keywordflow">return</span> (block != &block->getParent()->getEntryBlock());</div>
+<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>   }</div>
+<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span> <span class="comment"></span></div>
+<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span> <span class="comment">  /// Try to save the given value.</span></div>
+<div class="line"><a name="l02591"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#a1071f3555dfc07ba98afc236269b59ad"> 2591</a></span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#a1071f3555dfc07ba98afc236269b59ad" title="Try to save the given value.">save</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *value) {</div>
+<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>     <span class="keywordflow">if</span> (!needsSaving(value)) <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a>(value, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span> </div>
+<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>     <span class="comment">// Otherwise we need an alloca.</span></div>
+<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *alloca =</div>
+<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>       CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a1c72e741c84049695bde11b7df94c332">CreateTempAlloca</a>(value->getType(), <span class="stringliteral">"cond-cleanup.save"</span>);</div>
+<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>     CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateStore(value, alloca);</div>
+<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span> </div>
+<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>     <span class="keywordflow">return</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a>(alloca, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>   }</div>
+<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span> </div>
+<div class="line"><a name="l02602"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ae5e65eaee419cbe8c3ae4321d77ff9ec"> 2602</a></span>   <span class="keyword">static</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ae5e65eaee419cbe8c3ae4321d77ff9ec">restore</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a> value) {</div>
+<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>     <span class="keywordflow">if</span> (!value.getInt()) <span class="keywordflow">return</span> value.getPointer();</div>
+<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>     <span class="keywordflow">return</span> CGF.<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html#a982c1e3091df3de75723921687460d3d">Builder</a>.CreateLoad(value.getPointer());</div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>   }</div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span> };</div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span> <span class="comment"></span></div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span> <span class="comment">/// A partial specialization of DominatingValue for llvm::Values that</span></div>
+<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span> <span class="comment">/// might be llvm::Instructions.</span></div>
+<div class="line"><a name="l02610"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html"> 2610</a></span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer.html">DominatingPointer</a><T,<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>> : <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html">DominatingLLVMValue</a> {</div>
+<div class="line"><a name="l02611"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html#a406733d3e6184ed00e5be88b3a5ebbef"> 2611</a></span>   <span class="keyword">typedef</span> T *<a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html#a406733d3e6184ed00e5be88b3a5ebbef">type</a>;</div>
+<div class="line"><a name="l02612"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html#a6ef3532f4ff0d47049e56ba4bfa11171"> 2612</a></span>   <span class="keyword">static</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html#a406733d3e6184ed00e5be88b3a5ebbef">type</a> <a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01true_01_4.html#a6ef3532f4ff0d47049e56ba4bfa11171">restore</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ab4e057dc6331b4f33ed6ba4007a7d762">saved_type</a> value) {</div>
+<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>     <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<a class="code" href="structclang_1_1CodeGen_1_1DominatingLLVMValue.html#ae5e65eaee419cbe8c3ae4321d77ff9ec">DominatingLLVMValue::restore</a>(CGF, value));</div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>   }</div>
+<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span> };</div>
+<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span> <span class="comment"></span></div>
+<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span> <span class="comment">/// A specialization of DominatingValue for RValue.</span></div>
+<div class="line"><a name="l02618"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html"> 2618</a></span> <span class="comment"></span><span class="keyword">template</span> <> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue</a><<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a>> {</div>
+<div class="line"><a name="l02619"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#ab5cee87d804e1508c3dd87538c27ba75"> 2619</a></span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#ab5cee87d804e1508c3dd87538c27ba75">type</a>;</div>
+<div class="line"><a name="l02620"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4_1_1saved__type.html"> 2620</a></span>   <span class="keyword">class </span>saved_type {</div>
+<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>     <span class="keyword">enum</span> Kind { ScalarLiteral, ScalarAddress, AggregateLiteral,</div>
+<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>                 AggregateAddress, ComplexAddress };</div>
+<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span> </div>
+<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>     <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>     Kind K;</div>
+<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>     saved_type(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">llvm::Value</a> *v, Kind k) : <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>(v), K(k) {}</div>
+<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span> </div>
+<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> needsSaving(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> value);</div>
+<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>     <span class="keyword">static</span> saved_type save(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> value);</div>
+<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>     <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">RValue</a> restore(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF);</div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span> </div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>     <span class="comment">// implementations in CGExprCXX.cpp</span></div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>   };</div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span> </div>
+<div class="line"><a name="l02636"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a42024b49b2f5b7882003eb9fbf06cbf1"> 2636</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a42024b49b2f5b7882003eb9fbf06cbf1">needsSaving</a>(<a class="code" href="classclang_1_1CodeGen_1_1RValue.html">type</a> value) {</div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>     <span class="keywordflow">return</span> saved_type::needsSaving(value);</div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>   }</div>
+<div class="line"><a name="l02639"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a512c470554f22ca2068c70be48cdcf42"> 2639</a></span>   <span class="keyword">static</span> saved_type <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a512c470554f22ca2068c70be48cdcf42">save</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">type</a> value) {</div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>     <span class="keywordflow">return</span> saved_type::save(CGF, value);</div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>   }</div>
+<div class="line"><a name="l02642"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a6accf38d66a4fb6ae1a491c904779442"> 2642</a></span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1RValue.html">type</a> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01RValue_01_4.html#a6accf38d66a4fb6ae1a491c904779442">restore</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, saved_type value) {</div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>     <span class="keywordflow">return</span> value.restore(CGF);</div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>   }</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span> };</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span> </div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span> }  <span class="comment">// end namespace CodeGen</span></div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span> }  <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span> </div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:28 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>





More information about the llvm-commits mailing list