On Wed, Jul 24, 2024 at 9:32 PM Tom Tromey <tro...@adacore.com> wrote: > > While working on a patch to the Ada compiler, I found a spot in > dwarf2out.cc that calls add_name_attribute where a call to > add_name_and_src_coords_attributes would be better, because the latter > respects DECL_NAMELESS.
If the point is DECL_NAMELESS shouldn't we omit the typedef DIE instead? A less controversial patch might be to use dwarf2_name (name, 0) instead of IDENTIFIER_POINTER > gcc > > * dwarf2out.cc (modified_type_die): Call > add_name_and_src_coords_attributes for type decls. > --- > gcc/dwarf2out.cc | 29 ++++++++++++----------------- > 1 file changed, 12 insertions(+), 17 deletions(-) > > diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc > index 357efaa5990..9f6e7110411 100644 > --- a/gcc/dwarf2out.cc > +++ b/gcc/dwarf2out.cc > @@ -14047,23 +14047,18 @@ modified_type_die (tree type, int cv_quals, bool > reverse, > Don't attach a DW_AT_name to DW_TAG_const_type or DW_TAG_volatile_type > if the base type already has the same name. */ > if (name > - && ((TREE_CODE (name) != TYPE_DECL > - && (qualified_type == TYPE_MAIN_VARIANT (type) > - || (cv_quals == TYPE_UNQUALIFIED))) > - || (TREE_CODE (name) == TYPE_DECL > - && DECL_NAME (name) > - && (TREE_TYPE (name) == qualified_type > - || (lang_hooks.types.get_debug_type > - && (lang_hooks.types.get_debug_type (TREE_TYPE (name)) > - == qualified_type)))))) > - { > - if (TREE_CODE (name) == TYPE_DECL) > - /* Could just call add_name_and_src_coords_attributes here, > - but since this is a builtin type it doesn't have any > - useful source coordinates anyway. */ > - name = DECL_NAME (name); > - add_name_attribute (mod_type_die, IDENTIFIER_POINTER (name)); > - } > + && TREE_CODE (name) != TYPE_DECL > + && (qualified_type == TYPE_MAIN_VARIANT (type) > + || (cv_quals == TYPE_UNQUALIFIED))) > + add_name_attribute (mod_type_die, IDENTIFIER_POINTER (name)); > + else if (name > + && TREE_CODE (name) == TYPE_DECL > + && DECL_NAME (name) > + && (TREE_TYPE (name) == qualified_type > + || (lang_hooks.types.get_debug_type > + && (lang_hooks.types.get_debug_type (TREE_TYPE (name)) > + == qualified_type)))) > + add_name_and_src_coords_attributes (mod_type_die, name, true); > else if (mod_type_die && mod_type_die->die_tag == DW_TAG_base_type) > { > if (TREE_CODE (type) == BITINT_TYPE) > -- > 2.45.0 >