<div dir="ltr">This was a cleanup before some other refactoring I wanted to do, but that refactoring has been put on hold for a bit, so I committed this change to improve the codebase a little and not have to redo it later.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 31, 2018 at 4:50 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">While I realize it's in the coding standard - is there any particular other motivation for this? (Given you've been doing layering cleanup - I'm wondering fi this is an interesting workaround for some layering problems, for instance?)</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 29, 2018 at 1:05 PM Richard Trieu via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: rtrieu<br>
Date: Fri Dec 28 18:02:30 2018<br>
New Revision: 350143<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=350143&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=350143&view=rev</a><br>
Log:<br>
Add vtable anchor to classes.<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/AST/DeclCXX.h<br>
    cfe/trunk/include/clang/AST/DeclTemplate.h<br>
    cfe/trunk/include/clang/Lex/ModuleMap.h<br>
    cfe/trunk/lib/AST/DeclCXX.cpp<br>
    cfe/trunk/lib/AST/DeclTemplate.cpp<br>
    cfe/trunk/lib/Lex/ModuleMap.cpp<br>
<br>
Modified: cfe/trunk/include/clang/AST/DeclCXX.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclCXX.h?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclCXX.h?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/AST/DeclCXX.h (original)<br>
+++ cfe/trunk/include/clang/AST/DeclCXX.h Fri Dec 28 18:02:30 2018<br>
@@ -3918,6 +3918,7 @@ class MSPropertyDecl : public Declarator<br>
       : DeclaratorDecl(MSProperty, DC, L, N, T, TInfo, StartL),<br>
         GetterId(Getter), SetterId(Setter) {}<br>
<br>
+  void anchor() override;<br>
 public:<br>
   friend class ASTDeclReader;<br>
<br>
<br>
Modified: cfe/trunk/include/clang/AST/DeclTemplate.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclTemplate.h?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclTemplate.h?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/AST/DeclTemplate.h (original)<br>
+++ cfe/trunk/include/clang/AST/DeclTemplate.h Fri Dec 28 18:02:30 2018<br>
@@ -751,6 +751,7 @@ class RedeclarableTemplateDecl : public<br>
     return getMostRecentDecl();<br>
   }<br>
<br>
+  void anchor() override;<br>
 protected:<br>
   template <typename EntryType> struct SpecEntryTraits {<br>
     using DeclType = EntryType;<br>
<br>
Modified: cfe/trunk/include/clang/Lex/ModuleMap.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/ModuleMap.h?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/ModuleMap.h?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Lex/ModuleMap.h (original)<br>
+++ cfe/trunk/include/clang/Lex/ModuleMap.h Fri Dec 28 18:02:30 2018<br>
@@ -45,6 +45,8 @@ class SourceManager;<br>
 /// A mechanism to observe the actions of the module map parser as it<br>
 /// reads module map files.<br>
 class ModuleMapCallbacks {<br>
+  virtual void anchor();<br>
+<br>
 public:<br>
   virtual ~ModuleMapCallbacks() = default;<br>
<br>
<br>
Modified: cfe/trunk/lib/AST/DeclCXX.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/AST/DeclCXX.cpp (original)<br>
+++ cfe/trunk/lib/AST/DeclCXX.cpp Fri Dec 28 18:02:30 2018<br>
@@ -2910,6 +2910,8 @@ void DecompositionDecl::printName(llvm::<br>
   os << ']';<br>
 }<br>
<br>
+void MSPropertyDecl::anchor() {}<br>
+<br>
 MSPropertyDecl *MSPropertyDecl::Create(ASTContext &C, DeclContext *DC,<br>
                                        SourceLocation L, DeclarationName N,<br>
                                        QualType T, TypeSourceInfo *TInfo,<br>
<br>
Modified: cfe/trunk/lib/AST/DeclTemplate.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclTemplate.cpp?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclTemplate.cpp?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/AST/DeclTemplate.cpp (original)<br>
+++ cfe/trunk/lib/AST/DeclTemplate.cpp Fri Dec 28 18:02:30 2018<br>
@@ -149,6 +149,8 @@ void *allocateDefaultArgStorageChain(con<br>
 // RedeclarableTemplateDecl Implementation<br>
 //===----------------------------------------------------------------------===//<br>
<br>
+void RedeclarableTemplateDecl::anchor() {}<br>
+<br>
 RedeclarableTemplateDecl::CommonBase *RedeclarableTemplateDecl::getCommonPtr() const {<br>
   if (Common)<br>
     return Common;<br>
<br>
Modified: cfe/trunk/lib/Lex/ModuleMap.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/ModuleMap.cpp?rev=350143&r1=350142&r2=350143&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/ModuleMap.cpp?rev=350143&r1=350142&r2=350143&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Lex/ModuleMap.cpp (original)<br>
+++ cfe/trunk/lib/Lex/ModuleMap.cpp Fri Dec 28 18:02:30 2018<br>
@@ -54,6 +54,8 @@<br>
<br>
 using namespace clang;<br>
<br>
+void ModuleMapCallbacks::anchor() {}<br>
+<br>
 void ModuleMap::resolveLinkAsDependencies(Module *Mod) {<br>
   auto PendingLinkAs = PendingLinkAsModule.find(Mod->Name);<br>
   if (PendingLinkAs != PendingLinkAsModule.end()) {<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>
</blockquote></div>