diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b338a90e429..6dfb0c8700e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-12-01 Richard Guenther + + PR c++/29433 + * dwarf2out.c (struct pubname_struct): Make name const. + (add_pubtype): Do not xstrdup identifiers. + 2006-12-01 Bernd Schmidt * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index c61f3d8bd92..e853b2fde2e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -3756,7 +3756,7 @@ die_node; typedef struct pubname_struct GTY(()) { dw_die_ref die; - char *name; + const char *name; } pubname_entry; @@ -7358,12 +7358,10 @@ add_pubtype (tree decl, dw_die_ref die) if (TYPE_NAME (decl)) { if (TREE_CODE (TYPE_NAME (decl)) == IDENTIFIER_NODE) - e.name = xstrdup ((const char *) IDENTIFIER_POINTER - (TYPE_NAME (decl))); + e.name = IDENTIFIER_POINTER (TYPE_NAME (decl)); else if (TREE_CODE (TYPE_NAME (decl)) == TYPE_DECL && DECL_NAME (TYPE_NAME (decl))) - e.name = xstrdup ((const char *) IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (decl)))); + e.name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (decl))); else e.name = xstrdup ((const char *) get_AT_string (die, DW_AT_name)); }