diff options
author | Pierre-Marie de Rodat <derodat@adacore.com> | 2014-12-17 16:25:30 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2014-12-17 16:25:30 +0000 |
commit | de8143caadb69d37498b11dcd5c1d7ed6dd05ee7 (patch) | |
tree | eda86e5a86e13f036c026c2eed69a3a8c777f126 /gcc | |
parent | 616743a89dcc2e240993f4cd57389963f28c1c88 (diff) | |
download | gcc-de8143caadb69d37498b11dcd5c1d7ed6dd05ee7.zip gcc-de8143caadb69d37498b11dcd5c1d7ed6dd05ee7.tar.gz gcc-de8143caadb69d37498b11dcd5c1d7ed6dd05ee7.tar.bz2 |
Enable the array descr language hook for all DWARF versions
* dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
even when (dwarf_version < 3 && dwarf_strict).
(gen_descr_array_die): Do not output DW_AT_data_locationn,
DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
attributes when (dwarf_version < 3 && dwarf_strict).
From-SVN: r218824
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 36 |
2 files changed, 29 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bfa03b0..2e76f7c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> + * dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook + even when (dwarf_version < 3 && dwarf_strict). + (gen_descr_array_die): Do not output DW_AT_data_locationn, + DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF + attributes when (dwarf_version < 3 && dwarf_strict). + +2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> + * dwarf2out.h (enum array_descr_ordering): New. (array_descr_dimen): Add a bounds_type structure field. (struct array_descr_info): Add a field to hold index type information diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index f92d31a..4e24f68 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -17480,15 +17480,19 @@ gen_descr_array_type_die (tree type, struct array_descr_info *info, break; } - if (info->data_location) - add_descr_info_field (array_die, DW_AT_data_location, info->data_location, - info->base_decl); - if (info->associated) - add_descr_info_field (array_die, DW_AT_associated, info->associated, - info->base_decl); - if (info->allocated) - add_descr_info_field (array_die, DW_AT_allocated, info->allocated, - info->base_decl); + if (dwarf_version >= 3 || !dwarf_strict) + { + if (info->data_location) + add_descr_info_field (array_die, DW_AT_data_location, + info->data_location, + info->base_decl); + if (info->associated) + add_descr_info_field (array_die, DW_AT_associated, info->associated, + info->base_decl); + if (info->allocated) + add_descr_info_field (array_die, DW_AT_allocated, info->allocated, + info->base_decl); + } add_gnat_descriptive_type_attribute (array_die, type, context_die); @@ -17519,10 +17523,13 @@ gen_descr_array_type_die (tree type, struct array_descr_info *info, add_descr_info_field (subrange_die, DW_AT_upper_bound, info->dimen[dim].upper_bound, info->base_decl); - if (info->dimen[dim].stride) - add_descr_info_field (subrange_die, DW_AT_byte_stride, - info->dimen[dim].stride, - info->base_decl); + if (dwarf_version >= 3 || !dwarf_strict) + { + if (info->dimen[dim].stride) + add_descr_info_field (subrange_die, DW_AT_byte_stride, + info->dimen[dim].stride, + info->base_decl); + } } gen_type_die (info->element_type, context_die); @@ -20120,8 +20127,7 @@ gen_type_die_with_usage (tree type, dw_die_ref context_die, /* If this is an array type with hidden descriptor, handle it first. */ if (!TREE_ASM_WRITTEN (type) - && lang_hooks.types.get_array_descr_info - && (dwarf_version >= 3 || !dwarf_strict)) + && lang_hooks.types.get_array_descr_info) { memset (&info, 0, sizeof (info)); if (lang_hooks.types.get_array_descr_info (type, &info)) |