diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ee9eb3fda1..0c666c0844 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,19 @@ +2006-01-17 Jim Blandy + + * dwarf2read.c (struct dwarf2_per_objfile, struct comp_unit_head) + (struct line_header, struct partial_die_info, struct dwarf_block): + Use gdb_byte for members that refer to Dwarf section contents. + (dwarf2_read_abbrevs, dwarf2_read_section, dwarf_decode_lines, + dwarf_decode_macros, load_comp_unit, load_partial_dies, + locate_pdi_sibling, partial_read_comp_unit_head, peek_die_abbrev, + read_1_byte, read_1_signed_byte, read_2_bytes, read_4_bytes, + read_8_bytes, read_address, read_attribute, read_attribute_value, + read_comp_unit, read_comp_unit_head, read_die_and_children, + read_die_and_siblings, read_full_die, read_indirect_string, + read_initial_length, read_n_bytes, read_offset, read_partial_die, + read_signed_leb128, read_string, read_unsigned_leb128, + skip_children, skip_leb128, skip_one_die): Same. + 2006-01-17 Daniel Jacobowitz * complaints.c (stop_whining): Make signed. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index d0e3a73d49..a2a066a1bb 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -162,13 +162,13 @@ struct dwarf2_per_objfile unsigned int eh_frame_size; /* Loaded data from the sections. */ - char *info_buffer; - char *abbrev_buffer; - char *line_buffer; - char *str_buffer; - char *macinfo_buffer; - char *ranges_buffer; - char *loc_buffer; + gdb_byte *info_buffer; + gdb_byte *abbrev_buffer; + gdb_byte *line_buffer; + gdb_byte *str_buffer; + gdb_byte *macinfo_buffer; + gdb_byte *ranges_buffer; + gdb_byte *loc_buffer; /* A list of all the compilation units. This is used to locate the target compilation unit of a particular reference. */ @@ -239,11 +239,11 @@ struct comp_unit_head /* Pointer to this compilation unit header in the .debug_info section. */ - char *cu_head_ptr; + gdb_byte *cu_head_ptr; /* Pointer to the first die of this compilation unit. This will be the first byte following the compilation unit header. */ - char *first_die_ptr; + gdb_byte *first_die_ptr; /* Pointer to the next compilation unit header in the program. */ struct comp_unit_head *next; @@ -425,7 +425,7 @@ struct line_header /* The start and end of the statement program following this header. These point into dwarf2_per_objfile->line_buffer. */ - char *statement_program_start, *statement_program_end; + gdb_byte *statement_program_start, *statement_program_end; }; /* When we construct a partial symbol table entry we only @@ -475,7 +475,7 @@ struct partial_die_info /* Pointer into the info_buffer pointing at the target of DW_AT_sibling, if any. */ - char *sibling; + gdb_byte *sibling; /* If HAS_SPECIFICATION, the offset of the DIE referred to by DW_AT_specification (or DW_AT_abstract_origin or @@ -565,7 +565,7 @@ struct function_range struct dwarf_block { unsigned int size; - char *data; + gdb_byte *data; }; #ifndef ATTR_ALLOC_CHUNK @@ -739,33 +739,33 @@ static void add_partial_namespace (struct partial_die_info *pdi, static void add_partial_enumeration (struct partial_die_info *enum_pdi, struct dwarf2_cu *cu); -static char *locate_pdi_sibling (struct partial_die_info *orig_pdi, - char *info_ptr, - bfd *abfd, - struct dwarf2_cu *cu); +static gdb_byte *locate_pdi_sibling (struct partial_die_info *orig_pdi, + gdb_byte *info_ptr, + bfd *abfd, + struct dwarf2_cu *cu); static void dwarf2_psymtab_to_symtab (struct partial_symtab *); static void psymtab_to_symtab_1 (struct partial_symtab *); -char *dwarf2_read_section (struct objfile *, asection *); +gdb_byte *dwarf2_read_section (struct objfile *, asection *); static void dwarf2_read_abbrevs (bfd *abfd, struct dwarf2_cu *cu); static void dwarf2_free_abbrev_table (void *); -static struct abbrev_info *peek_die_abbrev (char *, unsigned int *, +static struct abbrev_info *peek_die_abbrev (gdb_byte *, unsigned int *, struct dwarf2_cu *); static struct abbrev_info *dwarf2_lookup_abbrev (unsigned int, struct dwarf2_cu *); -static struct partial_die_info *load_partial_dies (bfd *, char *, int, +static struct partial_die_info *load_partial_dies (bfd *, gdb_byte *, int, struct dwarf2_cu *); -static char *read_partial_die (struct partial_die_info *, - struct abbrev_info *abbrev, unsigned int, - bfd *, char *, struct dwarf2_cu *); +static gdb_byte *read_partial_die (struct partial_die_info *, + struct abbrev_info *abbrev, unsigned int, + bfd *, gdb_byte *, struct dwarf2_cu *); static struct partial_die_info *find_partial_die (unsigned long, struct dwarf2_cu *); @@ -773,46 +773,47 @@ static struct partial_die_info *find_partial_die (unsigned long, static void fixup_partial_die (struct partial_die_info *, struct dwarf2_cu *); -static char *read_full_die (struct die_info **, bfd *, char *, - struct dwarf2_cu *, int *); +static gdb_byte *read_full_die (struct die_info **, bfd *, gdb_byte *, + struct dwarf2_cu *, int *); -static char *read_attribute (struct attribute *, struct attr_abbrev *, - bfd *, char *, struct dwarf2_cu *); +static gdb_byte *read_attribute (struct attribute *, struct attr_abbrev *, + bfd *, gdb_byte *, struct dwarf2_cu *); -static char *read_attribute_value (struct attribute *, unsigned, - bfd *, char *, struct dwarf2_cu *); +static gdb_byte *read_attribute_value (struct attribute *, unsigned, + bfd *, gdb_byte *, struct dwarf2_cu *); -static unsigned int read_1_byte (bfd *, char *); +static unsigned int read_1_byte (bfd *, gdb_byte *); -static int read_1_signed_byte (bfd *, char *); +static int read_1_signed_byte (bfd *, gdb_byte *); -static unsigned int read_2_bytes (bfd *, char *); +static unsigned int read_2_bytes (bfd *, gdb_byte *); -static unsigned int read_4_bytes (bfd *, char *); +static unsigned int read_4_bytes (bfd *, gdb_byte *); -static unsigned long read_8_bytes (bfd *, char *); +static unsigned long read_8_bytes (bfd *, gdb_byte *); -static CORE_ADDR read_address (bfd *, char *ptr, struct dwarf2_cu *, +static CORE_ADDR read_address (bfd *, gdb_byte *ptr, struct dwarf2_cu *, unsigned int *); -static LONGEST read_initial_length (bfd *, char *, +static LONGEST read_initial_length (bfd *, gdb_byte *, struct comp_unit_head *, unsigned int *); -static LONGEST read_offset (bfd *, char *, const struct comp_unit_head *, +static LONGEST read_offset (bfd *, gdb_byte *, const struct comp_unit_head *, unsigned int *); -static char *read_n_bytes (bfd *, char *, unsigned int); +static gdb_byte *read_n_bytes (bfd *, gdb_byte *, unsigned int); -static char *read_string (bfd *, char *, unsigned int *); +static char *read_string (bfd *, gdb_byte *, unsigned int *); -static char *read_indirect_string (bfd *, char *, const struct comp_unit_head *, - unsigned int *); +static char *read_indirect_string (bfd *, gdb_byte *, + const struct comp_unit_head *, + unsigned int *); -static unsigned long read_unsigned_leb128 (bfd *, char *, unsigned int *); +static unsigned long read_unsigned_leb128 (bfd *, gdb_byte *, unsigned int *); -static long read_signed_leb128 (bfd *, char *, unsigned int *); +static long read_signed_leb128 (bfd *, gdb_byte *, unsigned int *); -static char *skip_leb128 (bfd *, char *); +static gdb_byte *skip_leb128 (bfd *, gdb_byte *); static void set_cu_language (unsigned int, struct dwarf2_cu *); @@ -862,7 +863,9 @@ static void read_type_die (struct die_info *, struct dwarf2_cu *); static char *determine_prefix (struct die_info *die, struct dwarf2_cu *); -static char *typename_concat (struct obstack *, const char *prefix, const char *suffix, +static char *typename_concat (struct obstack *, + const char *prefix, + const char *suffix, struct dwarf2_cu *); static void read_typedef (struct die_info *, struct dwarf2_cu *); @@ -938,16 +941,16 @@ static void read_tag_string_type (struct die_info *, struct dwarf2_cu *); static void read_subroutine_type (struct die_info *, struct dwarf2_cu *); -static struct die_info *read_comp_unit (char *, bfd *, struct dwarf2_cu *); +static struct die_info *read_comp_unit (gdb_byte *, bfd *, struct dwarf2_cu *); -static struct die_info *read_die_and_children (char *info_ptr, bfd *abfd, +static struct die_info *read_die_and_children (gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *, - char **new_info_ptr, + gdb_byte **new_info_ptr, struct die_info *parent); -static struct die_info *read_die_and_siblings (char *info_ptr, bfd *abfd, +static struct die_info *read_die_and_siblings (gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *, - char **new_info_ptr, + gdb_byte **new_info_ptr, struct die_info *parent); static void free_die_list (struct die_info *); @@ -1022,8 +1025,8 @@ static void dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, struct dwarf2_cu *cu); -static char *skip_one_die (char *info_ptr, struct abbrev_info *abbrev, - struct dwarf2_cu *cu); +static gdb_byte *skip_one_die (gdb_byte *info_ptr, struct abbrev_info *abbrev, + struct dwarf2_cu *cu); static void free_stack_comp_unit (void *); @@ -1264,9 +1267,9 @@ dwarf2_build_psymtabs_easy (struct objfile *objfile, int mainline) /* Read in the comp unit header information from the debug_info at info_ptr. */ -static char * +static gdb_byte * read_comp_unit_head (struct comp_unit_head *cu_header, - char *info_ptr, bfd *abfd) + gdb_byte *info_ptr, bfd *abfd) { int signed_addr; unsigned int bytes_read; @@ -1288,11 +1291,11 @@ read_comp_unit_head (struct comp_unit_head *cu_header, return info_ptr; } -static char * -partial_read_comp_unit_head (struct comp_unit_head *header, char *info_ptr, +static gdb_byte * +partial_read_comp_unit_head (struct comp_unit_head *header, gdb_byte *info_ptr, bfd *abfd) { - char *beg_of_comp_unit = info_ptr; + gdb_byte *beg_of_comp_unit = info_ptr; info_ptr = read_comp_unit_head (header, info_ptr, abfd); @@ -1388,8 +1391,8 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline) /* Instead of reading this into a big buffer, we should probably use mmap() on architectures that support it. (FIXME) */ bfd *abfd = objfile->obfd; - char *info_ptr; - char *beg_of_comp_unit; + gdb_byte *info_ptr; + gdb_byte *beg_of_comp_unit; struct partial_die_info comp_unit_die; struct partial_symtab *pst; struct cleanup *back_to; @@ -1555,7 +1558,7 @@ static void load_comp_unit (struct dwarf2_per_cu_data *this_cu, struct objfile *objfile) { bfd *abfd = objfile->obfd; - char *info_ptr, *beg_of_comp_unit; + gdb_byte *info_ptr, *beg_of_comp_unit; struct partial_die_info comp_unit_die; struct dwarf2_cu *cu; struct abbrev_info *abbrev; @@ -1614,7 +1617,7 @@ create_all_comp_units (struct objfile *objfile) int n_allocated; int n_comp_units; struct dwarf2_per_cu_data **all_comp_units; - char *info_ptr = dwarf2_per_objfile->info_buffer; + gdb_byte *info_ptr = dwarf2_per_objfile->info_buffer; n_comp_units = 0; n_allocated = 10; @@ -1624,7 +1627,7 @@ create_all_comp_units (struct objfile *objfile) while (info_ptr < dwarf2_per_objfile->info_buffer + dwarf2_per_objfile->info_size) { struct comp_unit_head cu_header; - char *beg_of_comp_unit; + gdb_byte *beg_of_comp_unit; struct dwarf2_per_cu_data *this_cu; unsigned long offset; unsigned int bytes_read; @@ -2138,7 +2141,7 @@ add_partial_enumeration (struct partial_die_info *enum_pdi, the initial number. */ static struct abbrev_info * -peek_die_abbrev (char *info_ptr, unsigned int *bytes_read, +peek_die_abbrev (gdb_byte *info_ptr, unsigned int *bytes_read, struct dwarf2_cu *cu) { bfd *abfd = cu->objfile->obfd; @@ -2164,8 +2167,8 @@ peek_die_abbrev (char *info_ptr, unsigned int *bytes_read, pointer to the end of a series of DIEs, terminated by an empty DIE. Any children of the skipped DIEs will also be skipped. */ -static char * -skip_children (char *info_ptr, struct dwarf2_cu *cu) +static gdb_byte * +skip_children (gdb_byte *info_ptr, struct dwarf2_cu *cu) { struct abbrev_info *abbrev; unsigned int bytes_read; @@ -2186,8 +2189,8 @@ skip_children (char *info_ptr, struct dwarf2_cu *cu) ABBREV. Returns a pointer to this DIE's sibling, skipping any children. */ -static char * -skip_one_die (char *info_ptr, struct abbrev_info *abbrev, +static gdb_byte * +skip_one_die (gdb_byte *info_ptr, struct abbrev_info *abbrev, struct dwarf2_cu *cu) { unsigned int bytes_read; @@ -2283,8 +2286,8 @@ skip_one_die (char *info_ptr, struct abbrev_info *abbrev, /* Locate ORIG_PDI's sibling; INFO_PTR should point to the start of the next DIE after ORIG_PDI. */ -static char * -locate_pdi_sibling (struct partial_die_info *orig_pdi, char *info_ptr, +static gdb_byte * +locate_pdi_sibling (struct partial_die_info *orig_pdi, gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *cu) { /* Do we know the sibling already? */ @@ -2485,7 +2488,7 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu) bfd *abfd = pst->objfile->obfd; struct dwarf2_cu *cu; unsigned long offset; - char *info_ptr; + gdb_byte *info_ptr; struct cleanup *back_to, *free_cu_cleanup; struct attribute *attr; CORE_ADDR baseaddr; @@ -3058,7 +3061,7 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc, CORE_ADDR base; int found_base; unsigned int dummy; - char *buffer; + gdb_byte *buffer; CORE_ADDR marker; int low_set; @@ -3445,11 +3448,11 @@ dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type, if (fip->nbaseclasses) { int num_bytes = B_BYTES (fip->nbaseclasses); - char *pointer; + unsigned char *pointer; ALLOCATE_CPLUS_STRUCT_TYPE (type); - pointer = (char *) TYPE_ALLOC (type, num_bytes); - TYPE_FIELD_VIRTUAL_BITS (type) = (B_TYPE *) pointer; + pointer = TYPE_ALLOC (type, num_bytes); + TYPE_FIELD_VIRTUAL_BITS (type) = pointer; B_CLRALL (TYPE_FIELD_VIRTUAL_BITS (type), fip->nbaseclasses); TYPE_N_BASECLASSES (type) = fip->nbaseclasses; } @@ -4836,7 +4839,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) /* Read a whole compilation unit into a linked list of dies. */ static struct die_info * -read_comp_unit (char *info_ptr, bfd *abfd, struct dwarf2_cu *cu) +read_comp_unit (gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *cu) { return read_die_and_children (info_ptr, abfd, cu, &info_ptr, NULL); } @@ -4848,13 +4851,13 @@ read_comp_unit (char *info_ptr, bfd *abfd, struct dwarf2_cu *cu) is the parent of the die in question. */ static struct die_info * -read_die_and_children (char *info_ptr, bfd *abfd, +read_die_and_children (gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *cu, - char **new_info_ptr, + gdb_byte **new_info_ptr, struct die_info *parent) { struct die_info *die; - char *cur_ptr; + gdb_byte *cur_ptr; int has_children; cur_ptr = read_full_die (&die, abfd, info_ptr, cu, &has_children); @@ -4881,13 +4884,13 @@ read_die_and_children (char *info_ptr, bfd *abfd, in read_die_and_children. */ static struct die_info * -read_die_and_siblings (char *info_ptr, bfd *abfd, +read_die_and_siblings (gdb_byte *info_ptr, bfd *abfd, struct dwarf2_cu *cu, - char **new_info_ptr, + gdb_byte **new_info_ptr, struct die_info *parent) { struct die_info *first_die, *last_sibling; - char *cur_ptr; + gdb_byte *cur_ptr; cur_ptr = info_ptr; first_die = last_sibling = NULL; @@ -4940,19 +4943,18 @@ free_die_list (struct die_info *dies) /* Read the contents of the section at OFFSET and of size SIZE from the object file specified by OBJFILE into the objfile_obstack and return it. */ -char * +gdb_byte * dwarf2_read_section (struct objfile *objfile, asection *sectp) { bfd *abfd = objfile->obfd; - char *buf, *retbuf; + gdb_byte *buf, *retbuf; bfd_size_type size = bfd_get_section_size (sectp); if (size == 0) return NULL; - buf = (char *) obstack_alloc (&objfile->objfile_obstack, size); - retbuf - = (char *) symfile_relocate_debug_section (abfd, sectp, (bfd_byte *) buf); + buf = obstack_alloc (&objfile->objfile_obstack, size); + retbuf = symfile_relocate_debug_section (abfd, sectp, buf); if (retbuf != NULL) return retbuf; @@ -4974,7 +4976,7 @@ static void dwarf2_read_abbrevs (bfd *abfd, struct dwarf2_cu *cu) { struct comp_unit_head *cu_header = &cu->header; - char *abbrev_ptr; + gdb_byte *abbrev_ptr; struct abbrev_info *cur_abbrev; unsigned int abbrev_number, bytes_read, abbrev_name; unsigned int abbrev_form, hash_number; @@ -5139,7 +5141,7 @@ is_type_tag_for_partial (int tag) /* Load all DIEs that are interesting for partial symbols into memory. */ static struct partial_die_info * -load_partial_dies (bfd *abfd, char *info_ptr, int building_psymtab, +load_partial_dies (bfd *abfd, gdb_byte *info_ptr, int building_psymtab, struct dwarf2_cu *cu) { struct partial_die_info *part_die; @@ -5335,11 +5337,11 @@ load_partial_dies (bfd *abfd, char *info_ptr, int building_psymtab, /* Read a minimal amount of information into the minimal die structure. */ -static char * +static gdb_byte * read_partial_die (struct partial_die_info *part_die, struct abbrev_info *abbrev, unsigned int abbrev_len, bfd *abfd, - char *info_ptr, struct dwarf2_cu *cu) + gdb_byte *info_ptr, struct dwarf2_cu *cu) { unsigned int bytes_read, i; struct attribute attr; @@ -5544,8 +5546,8 @@ fixup_partial_die (struct partial_die_info *part_die, child, sibling, and parent fields. Set HAS_CHILDREN to tell whether the die has children or not. */ -static char * -read_full_die (struct die_info **diep, bfd *abfd, char *info_ptr, +static gdb_byte * +read_full_die (struct die_info **diep, bfd *abfd, gdb_byte *info_ptr, struct dwarf2_cu *cu, int *has_children) { unsigned int abbrev_number, bytes_read, i, offset; @@ -5628,9 +5630,9 @@ read_full_die (struct die_info **diep, bfd *abfd, char *info_ptr, /* Read an attribute value described by an attribute form. */ -static char * +static gdb_byte * read_attribute_value (struct attribute *attr, unsigned form, - bfd *abfd, char *info_ptr, + bfd *abfd, gdb_byte *info_ptr, struct dwarf2_cu *cu) { struct comp_unit_head *cu_header = &cu->header; @@ -5750,9 +5752,9 @@ read_attribute_value (struct attribute *attr, unsigned form, /* Read an attribute described by an abbreviated attribute. */ -static char * +static gdb_byte * read_attribute (struct attribute *attr, struct attr_abbrev *abbrev, - bfd *abfd, char *info_ptr, struct dwarf2_cu *cu) + bfd *abfd, gdb_byte *info_ptr, struct dwarf2_cu *cu) { attr->name = abbrev->name; return read_attribute_value (attr, abbrev->form, abfd, info_ptr, cu); @@ -5761,49 +5763,49 @@ read_attribute (struct attribute *attr, struct attr_abbrev *abbrev, /* read dwarf information from a buffer */ static unsigned int -read_1_byte (bfd *abfd, char *buf) +read_1_byte (bfd *abfd, gdb_byte *buf) { - return bfd_get_8 (abfd, (bfd_byte *) buf); + return bfd_get_8 (abfd, buf); } static int -read_1_signed_byte (bfd *abfd, char *buf) +read_1_signed_byte (bfd *abfd, gdb_byte *buf) { - return bfd_get_signed_8 (abfd, (bfd_byte *) buf); + return bfd_get_signed_8 (abfd, buf); } static unsigned int -read_2_bytes (bfd *abfd, char *buf) +read_2_bytes (bfd *abfd, gdb_byte *buf) { - return bfd_get_16 (abfd, (bfd_byte *) buf); + return bfd_get_16 (abfd, buf); } static int -read_2_signed_bytes (bfd *abfd, char *buf) +read_2_signed_bytes (bfd *abfd, gdb_byte *buf) { - return bfd_get_signed_16 (abfd, (bfd_byte *) buf); + return bfd_get_signed_16 (abfd, buf); } static unsigned int -read_4_bytes (bfd *abfd, char *buf) +read_4_bytes (bfd *abfd, gdb_byte *buf) { - return bfd_get_32 (abfd, (bfd_byte *) buf); + return bfd_get_32 (abfd, buf); } static int -read_4_signed_bytes (bfd *abfd, char *buf) +read_4_signed_bytes (bfd *abfd, gdb_byte *buf) { - return bfd_get_signed_32 (abfd, (bfd_byte *) buf); + return bfd_get_signed_32 (abfd, buf); } static unsigned long -read_8_bytes (bfd *abfd, char *buf) +read_8_bytes (bfd *abfd, gdb_byte *buf) { - return bfd_get_64 (abfd, (bfd_byte *) buf); + return bfd_get_64 (abfd, buf); } static CORE_ADDR -read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, +read_address (bfd *abfd, gdb_byte *buf, struct dwarf2_cu *cu, unsigned int *bytes_read) { struct comp_unit_head *cu_header = &cu->header; @@ -5814,13 +5816,13 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, switch (cu_header->addr_size) { case 2: - retval = bfd_get_signed_16 (abfd, (bfd_byte *) buf); + retval = bfd_get_signed_16 (abfd, buf); break; case 4: - retval = bfd_get_signed_32 (abfd, (bfd_byte *) buf); + retval = bfd_get_signed_32 (abfd, buf); break; case 8: - retval = bfd_get_signed_64 (abfd, (bfd_byte *) buf); + retval = bfd_get_signed_64 (abfd, buf); break; default: internal_error (__FILE__, __LINE__, @@ -5833,13 +5835,13 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, switch (cu_header->addr_size) { case 2: - retval = bfd_get_16 (abfd, (bfd_byte *) buf); + retval = bfd_get_16 (abfd, buf); break; case 4: - retval = bfd_get_32 (abfd, (bfd_byte *) buf); + retval = bfd_get_32 (abfd, buf); break; case 8: - retval = bfd_get_64 (abfd, (bfd_byte *) buf); + retval = bfd_get_64 (abfd, buf); break; default: internal_error (__FILE__, __LINE__, @@ -5896,20 +5898,20 @@ read_address (bfd *abfd, char *buf, struct dwarf2_cu *cu, ] */ static LONGEST -read_initial_length (bfd *abfd, char *buf, struct comp_unit_head *cu_header, +read_initial_length (bfd *abfd, gdb_byte *buf, struct comp_unit_head *cu_header, unsigned int *bytes_read) { - LONGEST length = bfd_get_32 (abfd, (bfd_byte *) buf); + LONGEST length = bfd_get_32 (abfd, buf); if (length == 0xffffffff) { - length = bfd_get_64 (abfd, (bfd_byte *) buf + 4); + length = bfd_get_64 (abfd, buf + 4); *bytes_read = 12; } else if (length == 0) { /* Handle the (non-standard) 64-bit DWARF2 format used by IRIX. */ - length = bfd_get_64 (abfd, (bfd_byte *) buf); + length = bfd_get_64 (abfd, buf); *bytes_read = 8; } else @@ -5940,7 +5942,7 @@ read_initial_length (bfd *abfd, char *buf, struct comp_unit_head *cu_header, given by cu_header->offset_size. */ static LONGEST -read_offset (bfd *abfd, char *buf, const struct comp_unit_head *cu_header, +read_offset (bfd *abfd, gdb_byte *buf, const struct comp_unit_head *cu_header, unsigned int *bytes_read) { LONGEST retval = 0; @@ -5948,11 +5950,11 @@ read_offset (bfd *abfd, char *buf, const struct comp_unit_head *cu_header, switch (cu_header->offset_size) { case 4: - retval = bfd_get_32 (abfd, (bfd_byte *) buf); + retval = bfd_get_32 (abfd, buf); *bytes_read = 4; break; case 8: - retval = bfd_get_64 (abfd, (bfd_byte *) buf); + retval = bfd_get_64 (abfd, buf); *bytes_read = 8; break; default: @@ -5964,8 +5966,8 @@ read_offset (bfd *abfd, char *buf, const struct comp_unit_head *cu_header, return retval; } -static char * -read_n_bytes (bfd *abfd, char *buf, unsigned int size) +static gdb_byte * +read_n_bytes (bfd *abfd, gdb_byte *buf, unsigned int size) { /* If the size of a host char is 8 bits, we can return a pointer to the buffer, otherwise we have to copy the data to a buffer @@ -5975,7 +5977,7 @@ read_n_bytes (bfd *abfd, char *buf, unsigned int size) } static char * -read_string (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) +read_string (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr) { /* If the size of a host char is 8 bits, we can return a pointer to the string, otherwise we have to copy the string to a buffer @@ -5986,12 +5988,12 @@ read_string (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) *bytes_read_ptr = 1; return NULL; } - *bytes_read_ptr = strlen (buf) + 1; - return buf; + *bytes_read_ptr = strlen ((char *) buf) + 1; + return (char *) buf; } static char * -read_indirect_string (bfd *abfd, char *buf, +read_indirect_string (bfd *abfd, gdb_byte *buf, const struct comp_unit_head *cu_header, unsigned int *bytes_read_ptr) { @@ -6013,11 +6015,11 @@ read_indirect_string (bfd *abfd, char *buf, gdb_assert (HOST_CHAR_BIT == 8); if (dwarf2_per_objfile->str_buffer[str_offset] == '\0') return NULL; - return dwarf2_per_objfile->str_buffer + str_offset; + return (char *) (dwarf2_per_objfile->str_buffer + str_offset); } static unsigned long -read_unsigned_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) +read_unsigned_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr) { unsigned long result; unsigned int num_read; @@ -6030,7 +6032,7 @@ read_unsigned_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) i = 0; while (1) { - byte = bfd_get_8 (abfd, (bfd_byte *) buf); + byte = bfd_get_8 (abfd, buf); buf++; num_read++; result |= ((unsigned long)(byte & 127) << shift); @@ -6045,7 +6047,7 @@ read_unsigned_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) } static long -read_signed_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) +read_signed_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr) { long result; int i, shift, num_read; @@ -6057,7 +6059,7 @@ read_signed_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) i = 0; while (1) { - byte = bfd_get_8 (abfd, (bfd_byte *) buf); + byte = bfd_get_8 (abfd, buf); buf++; num_read++; result |= ((long)(byte & 127) << shift); @@ -6075,14 +6077,14 @@ read_signed_leb128 (bfd *abfd, char *buf, unsigned int *bytes_read_ptr) /* Return a pointer to just past the end of an LEB128 number in BUF. */ -static char * -skip_leb128 (bfd *abfd, char *buf) +static gdb_byte * +skip_leb128 (bfd *abfd, gdb_byte *buf) { int byte; while (1) { - byte = bfd_get_8 (abfd, (bfd_byte *) buf); + byte = bfd_get_8 (abfd, buf); buf++; if ((byte & 128) == 0) return buf; @@ -6281,7 +6283,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd, { struct cleanup *back_to; struct line_header *lh; - char *line_ptr; + gdb_byte *line_ptr; unsigned int bytes_read; int i; char *cur_dir, *cur_file; @@ -6333,7 +6335,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd, lh->opcode_base = read_1_byte (abfd, line_ptr); line_ptr += 1; lh->standard_opcode_lengths - = (unsigned char *) xmalloc (lh->opcode_base * sizeof (unsigned char)); + = xmalloc (lh->opcode_base * sizeof (lh->standard_opcode_lengths[0])); lh->standard_opcode_lengths[0] = 1; /* This should never be used anyway. */ for (i = 1; i < lh->opcode_base; ++i) @@ -6445,8 +6447,8 @@ static void dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd, struct dwarf2_cu *cu, struct partial_symtab *pst) { - char *line_ptr; - char *line_end; + gdb_byte *line_ptr; + gdb_byte *line_end; unsigned int bytes_read; unsigned char op_code, extended_op, adj_opcode; CORE_ADDR baseaddr; @@ -8585,11 +8587,11 @@ decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu) struct comp_unit_head *cu_header = &cu->header; int i; int size = blk->size; - char *data = blk->data; + gdb_byte *data = blk->data; CORE_ADDR stack[64]; int stacki; unsigned int bytes_read, unsnd; - unsigned char op; + gdb_byte op; i = 0; stacki = 0; @@ -9073,7 +9075,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset, char *comp_dir, bfd *abfd, struct dwarf2_cu *cu) { - char *mac_ptr, *mac_end; + gdb_byte *mac_ptr, *mac_end; struct macro_source_file *current_file = 0; if (dwarf2_per_objfile->macinfo_buffer == NULL)