This is the mail archive of the gdb-patches@sources.redhat.com 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 for handling of DW_AT_byte_size in DW_TAG_string_type and a some FORTRAN support



Petr, sorry for the delay.  

Your patch is approved.  

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?

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:


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