dwblaikie wrote:
> > Mostly I worry it won't be terribly complete, because it can't work through > > situations, like this: > > ``` > > template<typename T> > > struct trait { > > using type = T; > > }; > > template<typename T> > > struct other { > > trait<T>::type v1; > > T v2; > > }; > > ``` > > In this case, v2 can be described as being of type "T" referencing the > > template_type_parameter, but v1 can't be - because it references > > trait::type, for instance. > > I believe, in this case, the debug information of "v2" can still be improved > and align with DWARF v5 Right - like I said, I get that "v2" gets better, but "v1" doesn't, right? And I imagine many/(most?) uses of type parameters in templates are more complicated - so I'm not sure how much this helps, and will feel awkwardly inconsistent for DWARF consumers/users? > > Also, I'd worry that most debuggers/DWARF consumers aren't ready to handle > > type references to template_type_parameters? So best to test this with at > > least LLDB and GDB before we commit it. > > While I acknowledge that current debuggers may not fully support this DWARF > representation, I suggest that this implementation be controlled by a switch > until downstream tools are updated to accommodate these changes. Yeah - not sure it rises to the level of needing a flag (flags are a bit of an unfortunate maintenance burden - means more DWARF variety, harder to know everyone's doing the same thing, etc... ) - but some testing ahead of time would be good. https://github.com/llvm/llvm-project/pull/127654 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits