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