dblaikie added a comment.

In D70537#1788252 <https://reviews.llvm.org/D70537#1788252>, @probinson wrote:

> @dblaikie let me reflect this back to make sure I get it:
>  Template members (methods or variables) would never appear in the *metadata* 
> description of the struct; but metadata descriptions of the instances would 
> refer back to that struct (as the scope for the instance).  Then DwarfDebug 
> would paste them all together when emitting the DWARF description(s).  The 
> in-struct child DIE could then have the deduced type because by the time the 
> definition metadata is produced, we actually know what that type is.  This is 
> okay because template data members are necessarily static; they don't affect 
> size or layout of the struct in any way.
>
> So, CGDebugInfo would skip basically any templated member when constructing 
> the struct, but when the template is (finally, fully) instantiated, its 
> definition could know everything it needs to, and point back to the struct.
>
> Sounds reasonable.


Right - and that's what's already done for member function templates & what 
should be (but isn't currently) done for member variable templates & I think 
that would fix this bug.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70537



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

Reply via email to