This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] XLF Fortran: Remove an inappropriate complaint [Re: XLF Fortran arrays test]


On Sun, 25 Nov 2007 15:55:55 +0100, Daniel Jacobowitz wrote:
> On Fri, Nov 23, 2007 at 06:21:04PM +0100, Jan Kratochvil wrote:
> > On Fri, 23 Nov 2007 18:05:48 +0100, Carlos Eduardo Seo wrote:
> > ...
> > > During symbol reading, DW_AT_type missing from DW_TAG_subrange_type.
> > 
> > This code was there already before my changes.  And the XLF output really
> > misses DW_AT_type for DW_TAG_subrange_type.  But it should be correct:
> > 	http://dwarf.freestandards.org/Dwarf3.pdf
> > 	5.12 Subrange Type Entries
> > 	The subrange entry may have a DW_AT_type attribute to describe the type
> > 	of object, called the basis type, of whose values this subrange is
> > 	a subset.
> > 
> > "may have" should not produce a `complaint' category message as it is not
> > a standard violation.
> 
> Here's the rest of what the standard has to say:
> 
> ==
> If the subrange entry has no type attribute describing the basis type,
> the basis type is assumed to be the same as the object described by
> the lower bound attribute (if it references an object). If there is no
> lower bound attribute, or that attribute does not reference an object,
> the basis type is the type of the upper bound or count attribute (if
> either of them references an object). If there is no upper bound or
> count attribute, or neither references an object, the type is assumed
> to be the same type, in the source language of the compilation unit
> containing the subrange entry, as a signed integer with the same size
> as an address on the target machine.
> ==
> 
> It looks to me like (before your other patches?) we do not support
> the bounds or count referring to objects.

Before my patches
	http://sources.redhat.com/ml/gdb-patches/2007-11/msg00438.html
the code supported for the bounds
	DW_FORM_sdata, DW_FORM_udata, DW_FORM_data{1,2,4,8}
and after my patches it supports the bounds/count
	DW_FORM_block{,1,2,4}
To reference `object' it would have to support
	DW_FORM_reF*
but this form is still not supported.


> The code below the
> complaint is creating a signed integer type the size of an address.
> So your patch is OK.  Thanks.

I see now my point is wrong.  The code still violates (notwithstanding of any
of my Fortran patches) the DWARF standard as it ignores
DW_AT_lower_bound/DW_AT_upper_bound/DW_AT_count with DW_FORM_ref* which may
specify the intended type through another DIE (as can be seen in DWARF3 D.2.2).



Sorry,
Jan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]