<div dir="rtl"><div dir="ltr">out-of-tree code that uses WeakVH will continue to compile OK but may not perform OK with WeakVH not tracking anymore. </div><div dir="ltr">May be better not to reuse WeakVH yet so such code will fail compilation.</div><div dir="ltr"><br></div></div><br><div class="gmail_quote"><div dir="rtl">‫בתאריך יום ב׳, 1 במאי 2017 ב-20:21 מאת ‪Sanjoy Das via cfe-commits‬‏ <‪<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>‬‏>:‬<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: sanjoy<br>
Date: Mon May  1 12:08:00 2017<br>
New Revision: 301815<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=301815&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=301815&view=rev</a><br>
Log:<br>
Adapt to LLVM's rename of WeakVH to WeakTrackingVH; NFC<br>
<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CGDeclCXX.cpp<br>
    cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br>
    cfe/trunk/lib/CodeGen/CodeGenFunction.h<br>
    cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br>
    cfe/trunk/lib/CodeGen/CodeGenModule.h<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGDeclCXX.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDeclCXX.cpp?rev=301815&r1=301814&r2=301815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDeclCXX.cpp?rev=301815&r1=301814&r2=301815&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGDeclCXX.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGDeclCXX.cpp Mon May  1 12:08:00 2017<br>
@@ -571,9 +571,10 @@ CodeGenFunction::GenerateCXXGlobalInitFu<br>
   FinishFunction();<br>
 }<br>
<br>
-void CodeGenFunction::GenerateCXXGlobalDtorsFunc(llvm::Function *Fn,<br>
-                  const std::vector<std::pair<llvm::WeakVH, llvm::Constant*> ><br>
-                                                &DtorsAndObjects) {<br>
+void CodeGenFunction::GenerateCXXGlobalDtorsFunc(<br>
+    llvm::Function *Fn,<br>
+    const std::vector<std::pair<llvm::WeakTrackingVH, llvm::Constant *>><br>
+        &DtorsAndObjects) {<br>
   {<br>
     auto NL = ApplyDebugLocation::CreateEmpty(*this);<br>
     StartFunction(GlobalDecl(), getContext().VoidTy, Fn,<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=301815&r1=301814&r2=301815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=301815&r1=301814&r2=301815&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon May  1 12:08:00 2017<br>
@@ -886,7 +886,7 @@ protected:<br>
<br>
   /// Cached reference to the class for constant strings. This value has type<br>
   /// int * but is actually an Obj-C class pointer.<br>
-  llvm::WeakVH ConstantStringClassRef;<br>
+  llvm::WeakTrackingVH ConstantStringClassRef;<br>
<br>
   /// \brief The LLVM type corresponding to NSConstantString.<br>
   llvm::StructType *NSConstantStringType = nullptr;<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=301815&r1=301814&r2=301815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=301815&r1=301814&r2=301815&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Mon May  1 12:08:00 2017<br>
@@ -3471,9 +3471,10 @@ public:<br>
<br>
   /// GenerateCXXGlobalDtorsFunc - Generates code for destroying global<br>
   /// variables.<br>
-  void GenerateCXXGlobalDtorsFunc(llvm::Function *Fn,<br>
-                                  const std::vector<std::pair<llvm::WeakVH,<br>
-                                  llvm::Constant*> > &DtorsAndObjects);<br>
+  void GenerateCXXGlobalDtorsFunc(<br>
+      llvm::Function *Fn,<br>
+      const std::vector<std::pair<llvm::WeakTrackingVH, llvm::Constant *>><br>
+          &DtorsAndObjects);<br>
<br>
   void GenerateCXXGlobalVarDeclInitFunc(llvm::Function *Fn,<br>
                                         const VarDecl *D,<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=301815&r1=301814&r2=301815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=301815&r1=301814&r2=301815&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Mon May  1 12:08:00 2017<br>
@@ -1154,7 +1154,7 @@ void CodeGenModule::addCompilerUsedGloba<br>
 }<br>
<br>
 static void emitUsed(CodeGenModule &CGM, StringRef Name,<br>
-                     std::vector<llvm::WeakVH> &List) {<br>
+                     std::vector<llvm::WeakTrackingVH> &List) {<br>
   // Don't create llvm.used if there is no need.<br>
   if (List.empty())<br>
     return;<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenModule.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=301815&r1=301814&r2=301815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=301815&r1=301814&r2=301815&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenModule.h (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenModule.h Mon May  1 12:08:00 2017<br>
@@ -344,8 +344,8 @@ private:<br>
   /// List of global values which are required to be present in the object file;<br>
   /// bitcast to i8*. This is used for forcing visibility of symbols which may<br>
   /// otherwise be optimized out.<br>
-  std::vector<llvm::WeakVH> LLVMUsed;<br>
-  std::vector<llvm::WeakVH> LLVMCompilerUsed;<br>
+  std::vector<llvm::WeakTrackingVH> LLVMUsed;<br>
+  std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;<br>
<br>
   /// Store the list of global constructors and their respective priorities to<br>
   /// be emitted when the translation unit is complete.<br>
@@ -416,7 +416,7 @@ private:<br>
   SmallVector<GlobalInitData, 8> PrioritizedCXXGlobalInits;<br>
<br>
   /// Global destructor functions and arguments that need to run on termination.<br>
-  std::vector<std::pair<llvm::WeakVH,llvm::Constant*> > CXXGlobalDtors;<br>
+  std::vector<std::pair<llvm::WeakTrackingVH, llvm::Constant *>> CXXGlobalDtors;<br>
<br>
   /// \brief The complete set of modules that has been imported.<br>
   llvm::SetVector<clang::Module *> ImportedModules;<br>
@@ -433,7 +433,7 @@ private:<br>
<br>
   /// Cached reference to the class for constant strings. This value has type<br>
   /// int * but is actually an Obj-C class pointer.<br>
-  llvm::WeakVH CFConstantStringClassRef;<br>
+  llvm::WeakTrackingVH CFConstantStringClassRef;<br>
<br>
   /// \brief The type used to describe the state of a fast enumeration in<br>
   /// Objective-C's for..in loop.<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>