The DW_TAG_mutable_type was only mentioned in an early draft of DWARFv3. But was removed because there are no C++ mutable qualified types. It was replaced by a new attribute DW_AT_mutable on DW_TAG_member DIEs. The new attribute is available in dwarf.h. http://dwarfstd.org/ShowIssue.php?issue=050223.1
DW_TAG_mutable_type was only used internally in some backends (which just ignored it anyway). dwarves did use it to turn it into a string value, libabigail used it and ignored it (patches to remove sent). GCC, GDB and binutils don't use nor define it. Signed-off-by: Mark Wielaard <m...@redhat.com> --- backends/alpha_retval.c | 2 +- backends/arm_retval.c | 2 +- backends/i386_retval.c | 2 +- backends/ia64_retval.c | 2 +- backends/libebl_CPU.h | 2 +- backends/ppc64_retval.c | 2 +- backends/ppc_retval.c | 2 +- backends/s390_retval.c | 2 +- backends/sh_retval.c | 2 +- backends/sparc_retval.c | 2 +- backends/tilegx_retval.c | 2 +- backends/x86_64_retval.c | 2 +- libdw/dwarf.h | 1 - 13 files changed, 12 insertions(+), 13 deletions(-) diff --git a/backends/alpha_retval.c b/backends/alpha_retval.c index 6dfa694..fddb47f 100644 --- a/backends/alpha_retval.c +++ b/backends/alpha_retval.c @@ -82,7 +82,7 @@ alpha_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/arm_retval.c b/backends/arm_retval.c index 222f755..92e3631 100644 --- a/backends/arm_retval.c +++ b/backends/arm_retval.c @@ -78,7 +78,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/i386_retval.c b/backends/i386_retval.c index 90678c3..dc0c5e6 100644 --- a/backends/i386_retval.c +++ b/backends/i386_retval.c @@ -82,7 +82,7 @@ i386_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/ia64_retval.c b/backends/ia64_retval.c index ac0d8c3..d259a80 100644 --- a/backends/ia64_retval.c +++ b/backends/ia64_retval.c @@ -253,7 +253,7 @@ ia64_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h index 3ad9258..344a70e 100644 --- a/backends/libebl_CPU.h +++ b/backends/libebl_CPU.h @@ -60,7 +60,7 @@ dwarf_peel_type (Dwarf_Die *typediep, Dwarf_Attribute *attrp) int tag = DWARF_TAG_OR_RETURN (typediep); while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attrp = dwarf_attr_integrate (typediep, DW_AT_type, attrp); typediep = dwarf_formref_die (attrp, typediep); diff --git a/backends/ppc64_retval.c b/backends/ppc64_retval.c index c5c3b6f..042859f 100644 --- a/backends/ppc64_retval.c +++ b/backends/ppc64_retval.c @@ -92,7 +92,7 @@ ppc64_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/ppc_retval.c b/backends/ppc_retval.c index 7ca0c18..c289440 100644 --- a/backends/ppc_retval.c +++ b/backends/ppc_retval.c @@ -104,7 +104,7 @@ ppc_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/s390_retval.c b/backends/s390_retval.c index b671ee8..f830f0e 100644 --- a/backends/s390_retval.c +++ b/backends/s390_retval.c @@ -83,7 +83,7 @@ s390_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/sh_retval.c b/backends/sh_retval.c index 1166231..c45c91a 100644 --- a/backends/sh_retval.c +++ b/backends/sh_retval.c @@ -80,7 +80,7 @@ sh_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/sparc_retval.c b/backends/sparc_retval.c index dcd3785..91b97fd 100644 --- a/backends/sparc_retval.c +++ b/backends/sparc_retval.c @@ -87,7 +87,7 @@ sparc_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/tilegx_retval.c b/backends/tilegx_retval.c index e14cc51..25fbc9a 100644 --- a/backends/tilegx_retval.c +++ b/backends/tilegx_retval.c @@ -74,7 +74,7 @@ tilegx_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/backends/x86_64_retval.c b/backends/x86_64_retval.c index f3e9f2b..5734afc 100644 --- a/backends/x86_64_retval.c +++ b/backends/x86_64_retval.c @@ -96,7 +96,7 @@ x86_64_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) /* Follow typedefs and qualifiers to get to the actual type. */ while (tag == DW_TAG_typedef || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type - || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type) + || tag == DW_TAG_restrict_type) { attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); typedie = dwarf_formref_die (attr, &die_mem); diff --git a/libdw/dwarf.h b/libdw/dwarf.h index 41cae5b..a8d2ec9 100644 --- a/libdw/dwarf.h +++ b/libdw/dwarf.h @@ -87,7 +87,6 @@ enum DW_TAG_unspecified_type = 0x3b, DW_TAG_partial_unit = 0x3c, DW_TAG_imported_unit = 0x3d, - DW_TAG_mutable_type = 0x3e, DW_TAG_condition = 0x3f, DW_TAG_shared_type = 0x40, DW_TAG_type_unit = 0x41, -- 1.7.1