[repost] Support DW_AT_count inside DW_TAG_subrange_type

Daniel Jacobowitz drow@false.org
Thu Jul 14 14:11:00 GMT 2005


On Thu, Jul 14, 2005 at 12:40:48PM +0400, Vladimir Prus wrote:
> 
> Hello,
> I've got not reply to the following message, which was posted on 31/05/2005.
> Any change this patch will go in?

Elena has to review dwarf2 reader patches; I've copied her directly.

> 
> Original message below:
> 
> Hi,
> the DWARF standard says that the DW_TAG_subrage_type tag can contain either
> DW_AT_upper_bound or use DW_AT_count to specify upper bound relatively to 
> lower bound. The version 6.3 of gdb, and the current CVS, support only 
> DW_TAG_upper_bound.
> 
> The attached patch adds support for DW_AT_count.
> 
> The changelog entry could be:
> 2005-05-31  Vladimur Prus <ghost@cs.msu.su>
> 
>      dwarf2read.c (read_subrange_type): If no DW_AT_upper_bound attribute
>          is present, try using DW_AT_count
> 
> 
> 
> Comments?
> 
> - Volodya
> 

> --- dwarf2read.c.orig	2004-10-16 04:41:00.000000000 +0400
> +++ dwarf2read.c	2005-05-31 17:38:57.000000000 +0400
> @@ -4794,6 +4794,17 @@
>        else
>          high = dwarf2_get_attr_constant_value (attr, 1);
>      }
> +  else
> +    {
> +       /* Alternatively, the high boundary can be specified with the
> +          DW_AT_count attribute, which must be added to the low value.
> +       */
> +       attr = dwarf2_attr (die, DW_AT_count, cu);        
> +       if (attr)
> +         {
> +             high = dwarf2_get_attr_constant_value(attr, 0) + low - 1;
> +         }
> +    }  
>  
>    range_type = create_range_type (NULL, base_type, low, high);
>  


-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gdb-patches mailing list