dwblaikie wrote: > For template classes with type parameters, the information of which member > variables are of a "templated type" is lost. The debugger cannot > differentiate between "templated" types and "hardcoded" types. This is > because both types have the same debug information, so there is no way that > gdb can distinguish between them. This patch adds support for templates as > type by representing the template type as a derived type.
What features are you hoping to build on this debug info? 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<int>::type, for instance. 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. 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