This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Patch for handling of DW_AT_byte_size in DW_TAG_string_type and a some FORTRAN support
- From: Petr Sorfa <petrs at caldera dot com>
- To: Elena Zannoni <ezannoni at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 09 Jan 2002 17:48:31 -0500
- Subject: Re: Patch for handling of DW_AT_byte_size in DW_TAG_string_type and a some FORTRAN support
- Organization: Caldera
- References: <3BE98B49.7EF731FA@caldera.com> <15370.59846.328509.459084@krustylu.cygnus.com>
- Reply-to: petrs at caldera dot com
Hi Elena,
Sorry, was out of contact for two months, hence late reply.
> Your patch is approved.
Great!
> Did you add yourself to the MAINTAINERS file in the write after
> approval section? (I think that's the correct section) If not, could
> you please do that? Do you have cvs write access?
Nope. I'm not too sure if I'm allowed to. And no I don't have cvs
access.
Petr
>
> Thanks
> Elena
>
> Petr Sorfa writes:
> > Hi All,
> >
> > This patch contains:
> >
> > 1) Handling of the DW_AT_byte_size attribute when processing a
> > DW_TAG_string_type (this is acceptable under the current DWARF 2.1/3.0
> > standard.)
> > 2) In read_tag_string_type(), a fix for FORTRAN that propagates the
> > first string length to all string types. This is important as FORTRAN
> > strings are not delimited as in C/C++.
> > 3) Handling of the DW_LANG_Fortran95.
> >
> > 2001-11-07 Petr Sorfa <petrs@caldera.com>
> >
> > * dwarf2read.c (read_tag_string_type): Handling of
> > DW_AT_byte_size.
> > (read_tag_string_type): FORTRAN fix to prevent propagation of
> > first string size.
> > (set_cu_language): Handling of DW_LANG_Fortran95
> >
> > Comments?
> >
> > Petr
> > --
> > --------------------------------------------------------
> > Petr Sorfa Senior Software Engineer
> > Caldera
> > 430 Mountain Ave. http://www.caldera.com
> > Murray Hill 07974
> > NJ, USA
> > --------------------------------------------------------
> > Disclaimer: All my comments are my own and nobody else's
> > ----------------------------------------------------------*** dwarf2read.c Wed Nov 7 09:18:31 2001
> > --- dwarf2read.c.ps Wed Nov 7 09:22:41 2001
> > *************** read_tag_string_type (struct die_info *d
> > *** 2743,2754 ****
> > }
> > else
> > {
> > ! length = 1;
> > }
> > index_type = dwarf2_fundamental_type (objfile, FT_INTEGER);
> > range_type = create_range_type (NULL, index_type, 1, length);
> > ! char_type = dwarf2_fundamental_type (objfile, FT_CHAR);
> > ! type = create_string_type (char_type, range_type);
> > die->type = type;
> > }
> >
> > --- 2743,2772 ----
> > }
> > else
> > {
> > ! /* check for the DW_AT_byte_size attribute */
> > ! attr = dwarf_attr (die, DW_AT_byte_size);
> > ! if (attr)
> > ! {
> > ! length = DW_UNSND (attr);
> > ! }
> > ! else
> > ! {
> > ! length = 1;
> > ! }
> > }
> > index_type = dwarf2_fundamental_type (objfile, FT_INTEGER);
> > range_type = create_range_type (NULL, index_type, 1, length);
> > ! if (cu_language == language_fortran)
> > ! {
> > ! /* Need to create a unique string type for bounds
> > ! information */
> > ! type = create_string_type (0, range_type);
> > ! }
> > ! else
> > ! {
> > ! char_type = dwarf2_fundamental_type (objfile, FT_CHAR);
> > ! type = create_string_type (char_type, range_type);
> > ! }
> > die->type = type;
> > }
> >
> > *************** set_cu_language (unsigned int lang)
> > *** 3751,3756 ****
> > --- 3769,3775 ----
> > break;
> > case DW_LANG_Fortran77:
> > case DW_LANG_Fortran90:
> > + case DW_LANG_Fortran95:
> > cu_language = language_fortran;
> > break;
> > case DW_LANG_Mips_Assembler:
--
--------------------------------------------------------
Petr Sorfa Senior Software Engineer
Caldera
430 Mountain Ave. http://www.caldera.com
Murray Hill 07974
NJ, USA
--------------------------------------------------------
Disclaimer: All my comments are my own and nobody else's
----------------------------------------------------------