Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dwarf_loader: Initial support for DW_TAG_template_type_param tag
We don't really need to pretty print these, as the names of the classes already come with it, for instance: ⬢[acme@toolbox zzam@gentoo.org]$ pdwtags popup.cpp.o | grep ^'struct integral_constant' -A11 die__process_class: tag not supported 0x30 (template_value_parameter) at <5f0>! die__process_function: tag not supported 0x2f (template_type_parameter) at <1417>! die__process_class: tag not supported 0x4107 (GNU_template_parameter_pack) at <f1d8>! die__process_function: tag not supported 0x4108 (GNU_formal_parameter_pack) at <69aea>! struct integral_constant<bool, true> { typedef bool value_type; value_type operator std::integral_constant<bool, true>::value_type(const struct integral_constant<bool, true> *); value_type operator()(const struct integral_constant<bool, true> *); /* size: 1, cachelines: 0, members: 0 */ /* padding: 1 */ /* last cacheline: 1 bytes */ }; /* size: 0 */ -- struct integral_constant<bool, false> { typedef bool value_type; value_type operator std::integral_constant<bool, false>::value_type(const struct integral_constant<bool, false> *); value_type operator()(const struct integral_constant<bool, false> *); /* size: 1, cachelines: 0, members: 0 */ /* padding: 1 */ /* last cacheline: 1 bytes */ }; /* size: 0 */ ⬢[acme@toolbox zzam@gentoo.org]$ But lets collect this info, that only shows up in C++ (maybe other languages, Rust?), we'll end up using it maybe for using them for looking up all templates, or all templates of a given type or value, etc. I'll do the same for DW_TAG_template_value_parameter and support both in DW_TAG_subprogram. DW_TAG_GNU_template_parameter_pack must be some variation on this theme... Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
- Loading branch information