[gcc(refs/users/aoliva/heads/testme)] [dwarf] get_debug_type of qualified_type

Alexandre Oliva aoliva@gcc.gnu.org
Fri Jun 28 11:31:08 GMT 2024


https://gcc.gnu.org/g:03263dba5906e4f7987c89cff3c8e3f4c804e8df

commit 03263dba5906e4f7987c89cff3c8e3f4c804e8df
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Fri Jun 28 08:13:52 2024 -0300

    [dwarf] get_debug_type of qualified_type
    
    When we choose the narrower/packed variant of a type as the main debug
    info type, we fail to output its name if we fail to follow
    debug type for the TYPE_NAME decl type in modified_type_die.
    
    
    for  gcc/ChangeLog
    
            * dwarf2out.cc (modified_type_die): Follow name's debug type.

Diff:
---
 gcc/dwarf2out.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index f463435e446..5ce1a3e6f66 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -14051,8 +14051,11 @@ modified_type_die (tree type, int cv_quals, bool reverse,
 	   && (qualified_type == TYPE_MAIN_VARIANT (type)
 	       || (cv_quals == TYPE_UNQUALIFIED)))
 	  || (TREE_CODE (name) == TYPE_DECL
-	      && TREE_TYPE (name) == qualified_type
-	      && DECL_NAME (name))))
+	      && 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,


More information about the Gcc-cvs mailing list