erichkeane added a comment.

I guess my point is: a better comment would have saved me some time.  Basically 
point out that the 'debug' info for the whole type is emitted with a virtual 
method, and that non-virtual types have it emitted in every TU.  Also that this 
causes it to be emitted in only 1 place, since now there is only a single 
virtual method definition in a single TU.



================
Comment at: clang/include/clang/Sema/Sema.h:335
 
+  /// A key method to reduce duplicate type info from Sema.
+  virtual void anchor();
----------------
rnk wrote:
> hans wrote:
> > I worry that this is going to look obscure to most readers passing through. 
> > Maybe it could be expanded to more explicitly spell out that it reduces the 
> > size of the debug info?
> I want to keep it concise, most readers shouldn't need to know what this is, 
> and they can look up technical terms like "key method". I'll say "debug info" 
> instead of "type info", though, that should be more obvious.
FWIW, I just ran into this and did a double/triple take, as it didn't make 
sense for me to see a 'virtual' function in a 'final' type that didn't inherit 
to anything looked like nonsense.

The only way I found out what this meant (googling "key method" did very little 
for me here) was to do a 'git-blame' then found this review.  The ONLY place 
that explained what is happening here is the comment you made here: 
https://reviews.llvm.org/D70340#1752192


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70340/new/

https://reviews.llvm.org/D70340

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to