aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2read.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r--gdb/dwarf2read.c495
1 files changed, 250 insertions, 245 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 35be19d..8f0274b 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8,21 +8,22 @@
based on Fred Fish's (Cygnus Support) implementation of DWARF 1
support in dwarfread.c
-This file is part of GDB.
+ This file is part of GDB.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at
+ your option) any later version.
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
#include "defs.h"
#include "bfd.h"
@@ -207,15 +208,15 @@ struct attr_abbrev
/* This data structure holds a complete die structure. */
struct die_info
{
- enum dwarf_tag tag; /* Tag indicating type of die */
- unsigned short has_children; /* Does the die have children */
- unsigned int abbrev; /* Abbrev number */
- unsigned int offset; /* Offset in .debug_info section */
- unsigned int num_attrs; /* Number of attributes */
- struct attribute *attrs; /* An array of attributes */
- struct die_info *next_ref; /* Next die in ref hash table */
- struct die_info *next; /* Next die in linked list */
- struct type *type; /* Cached type information */
+ enum dwarf_tag tag; /* Tag indicating type of die */
+ unsigned short has_children; /* Does the die have children */
+ unsigned int abbrev; /* Abbrev number */
+ unsigned int offset; /* Offset in .debug_info section */
+ unsigned int num_attrs; /* Number of attributes */
+ struct attribute *attrs; /* An array of attributes */
+ struct die_info *next_ref; /* Next die in ref hash table */
+ struct die_info *next; /* Next die in linked list */
+ struct type *type; /* Cached type information */
};
/* Attributes have a name and a value */
@@ -315,7 +316,7 @@ static int isreg; /* Object lives in register.
static int offreg; /* Object's address is the sum of the
register specified by basereg, plus
the offset returned. */
-static int basereg; /* See `offreg'. */
+static int basereg; /* See `offreg'. */
static int isderef; /* Value described by flags above is
the address of a pointer to the object. */
static int islocal; /* Variable is at the returned offset
@@ -348,27 +349,27 @@ static CORE_ADDR baseaddr; /* Add to each symbol value */
of symbols read from an object file. */
struct dwarf2_pinfo
-{
- /* Pointer to start of dwarf info buffer for the objfile. */
+ {
+ /* Pointer to start of dwarf info buffer for the objfile. */
- char *dwarf_info_buffer;
+ char *dwarf_info_buffer;
- /* Offset in dwarf_info_buffer for this compilation unit. */
+ /* Offset in dwarf_info_buffer for this compilation unit. */
- unsigned long dwarf_info_offset;
+ unsigned long dwarf_info_offset;
- /* Pointer to start of dwarf abbreviation buffer for the objfile. */
+ /* Pointer to start of dwarf abbreviation buffer for the objfile. */
- char *dwarf_abbrev_buffer;
+ char *dwarf_abbrev_buffer;
- /* Size of dwarf abbreviation section for the objfile. */
+ /* Size of dwarf abbreviation section for the objfile. */
- unsigned int dwarf_abbrev_size;
+ unsigned int dwarf_abbrev_size;
- /* Pointer to start of dwarf line buffer for the objfile. */
+ /* Pointer to start of dwarf line buffer for the objfile. */
- char *dwarf_line_buffer;
-};
+ char *dwarf_line_buffer;
+ };
#define PST_PRIVATE(p) ((struct dwarf2_pinfo *)(p)->read_symtab_private)
#define DWARF_INFO_BUFFER(p) (PST_PRIVATE(p)->dwarf_info_buffer)
@@ -397,46 +398,49 @@ static int bits_per_byte = 8;
pass lists of data member fields and lists of member function fields
in an instance of a field_info structure, as defined below. */
struct field_info
-{
- /* List of data member and baseclasses fields. */
- struct nextfield
- {
- struct nextfield *next;
- int accessibility;
- int virtuality;
- struct field field;
- } *fields;
+ {
+ /* List of data member and baseclasses fields. */
+ struct nextfield
+ {
+ struct nextfield *next;
+ int accessibility;
+ int virtuality;
+ struct field field;
+ }
+ *fields;
- /* Number of fields. */
- int nfields;
+ /* Number of fields. */
+ int nfields;
- /* Number of baseclasses. */
- int nbaseclasses;
+ /* Number of baseclasses. */
+ int nbaseclasses;
- /* Set if the accesibility of one of the fields is not public. */
- int non_public_fields;
+ /* Set if the accesibility of one of the fields is not public. */
+ int non_public_fields;
- /* Member function fields array, entries are allocated in the order they
- are encountered in the object file. */
- struct nextfnfield
- {
- struct nextfnfield *next;
- struct fn_field fnfield;
- } *fnfields;
+ /* Member function fields array, entries are allocated in the order they
+ are encountered in the object file. */
+ struct nextfnfield
+ {
+ struct nextfnfield *next;
+ struct fn_field fnfield;
+ }
+ *fnfields;
- /* Member function fieldlist array, contains name of possibly overloaded
- member function, number of overloaded member functions and a pointer
- to the head of the member function field chain. */
- struct fnfieldlist
- {
- char *name;
- int length;
- struct nextfnfield *head;
- } *fnfieldlists;
+ /* Member function fieldlist array, contains name of possibly overloaded
+ member function, number of overloaded member functions and a pointer
+ to the head of the member function field chain. */
+ struct fnfieldlist
+ {
+ char *name;
+ int length;
+ struct nextfnfield *head;
+ }
+ *fnfieldlists;
- /* Number of entries in the fnfieldlists array. */
- int nfnfields;
-};
+ /* Number of entries in the fnfieldlists array. */
+ int nfnfields;
+ };
/* FIXME: Kludge to mark a varargs function type for C++ member function
argument processing. */
@@ -664,14 +668,14 @@ static void dwarf2_add_field PARAMS ((struct field_info *, struct die_info *,
struct objfile *));
static void dwarf2_attach_fields_to_type PARAMS ((struct field_info *,
- struct type *,
+ struct type *,
struct objfile *));
static char *skip_member_fn_name PARAMS ((char *));
static void dwarf2_add_member_fn PARAMS ((struct field_info *,
struct die_info *, struct type *,
- struct objfile *objfile));
+ struct objfile * objfile));
static void dwarf2_attach_fn_fields_to_type PARAMS ((struct field_info *,
struct type *,
@@ -837,9 +841,9 @@ dwarf2_locate_sections (ignore_abfd, sectp, ignore_ptr)
void
dwarf2_build_psymtabs (objfile, section_offsets, mainline)
- struct objfile *objfile;
- struct section_offsets *section_offsets;
- int mainline;
+ struct objfile *objfile;
+ struct section_offsets *section_offsets;
+ int mainline;
{
/* We definitely need the .debug_info and .debug_abbrev sections */
@@ -871,7 +875,7 @@ dwarf2_build_psymtabs (objfile, section_offsets, mainline)
else
#endif
/* only test this case for now */
- {
+ {
/* In this case we have to work a bit harder */
dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline);
}
@@ -946,7 +950,7 @@ dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline)
back_to = make_cleanup (dwarf2_free_tmp_obstack, NULL);
while ((unsigned int) (info_ptr - dwarf_info_buffer)
- + ((info_ptr - dwarf_info_buffer) % 4) < dwarf_info_size)
+ + ((info_ptr - dwarf_info_buffer) % 4) < dwarf_info_size)
{
beg_of_comp_unit = info_ptr;
cu_header.length = read_4_bytes (abfd, info_ptr);
@@ -999,7 +1003,7 @@ dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline)
/* Allocate a new partial symbol table structure */
pst = start_psymtab_common (objfile, section_offsets,
- comp_unit_die.name ? comp_unit_die.name : "",
+ comp_unit_die.name ? comp_unit_die.name : "",
comp_unit_die.lowpc,
objfile->global_psymbols.next,
objfile->static_psymbols.next);
@@ -1007,11 +1011,11 @@ dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline)
pst->read_symtab_private = (char *)
obstack_alloc (&objfile->psymbol_obstack, sizeof (struct dwarf2_pinfo));
cu_header_offset = beg_of_comp_unit - dwarf_info_buffer;
- DWARF_INFO_BUFFER(pst) = dwarf_info_buffer;
- DWARF_INFO_OFFSET(pst) = beg_of_comp_unit - dwarf_info_buffer;
- DWARF_ABBREV_BUFFER(pst) = dwarf_abbrev_buffer;
- DWARF_ABBREV_SIZE(pst) = dwarf_abbrev_size;
- DWARF_LINE_BUFFER(pst) = dwarf_line_buffer;
+ DWARF_INFO_BUFFER (pst) = dwarf_info_buffer;
+ DWARF_INFO_OFFSET (pst) = beg_of_comp_unit - dwarf_info_buffer;
+ DWARF_ABBREV_BUFFER (pst) = dwarf_abbrev_buffer;
+ DWARF_ABBREV_SIZE (pst) = dwarf_abbrev_size;
+ DWARF_LINE_BUFFER (pst) = dwarf_line_buffer;
baseaddr = ANOFFSET (section_offsets, 0);
/* Store the function that reads in the rest of the symbol table */
@@ -1028,11 +1032,11 @@ dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline)
then use the information extracted from its child dies. */
if (!comp_unit_has_pc_info)
{
- comp_unit_die.lowpc = lowpc;
+ comp_unit_die.lowpc = lowpc;
comp_unit_die.highpc = highpc;
}
}
- pst->textlow = comp_unit_die.lowpc + baseaddr;
+ pst->textlow = comp_unit_die.lowpc + baseaddr;
pst->texthigh = comp_unit_die.highpc + baseaddr;
pst->n_global_syms = objfile->global_psymbols.next -
@@ -1071,8 +1075,8 @@ scan_partial_symbols (info_ptr, objfile, lowpc, highpc)
int nesting_level = 1;
int has_pc_info;
-
- *lowpc = ((CORE_ADDR) -1);
+
+ *lowpc = ((CORE_ADDR) - 1);
*highpc = ((CORE_ADDR) 0);
while (nesting_level)
@@ -1115,13 +1119,13 @@ scan_partial_symbols (info_ptr, objfile, lowpc, highpc)
break;
case DW_TAG_enumerator:
/* File scope enumerators are added to the partial symbol
- table. */
+ table. */
if (nesting_level == 2)
add_partial_symbol (&pdi, objfile);
break;
case DW_TAG_base_type:
/* File scope base type definitions are added to the partial
- symbol table. */
+ symbol table. */
if (nesting_level == 1)
add_partial_symbol (&pdi, objfile);
break;
@@ -1131,8 +1135,8 @@ scan_partial_symbols (info_ptr, objfile, lowpc, highpc)
}
/* If the die has a sibling, skip to the sibling.
- Do not skip enumeration types, we want to record their
- enumerators. */
+ Do not skip enumeration types, we want to record their
+ enumerators. */
if (pdi.sibling && pdi.tag != DW_TAG_enumeration_type)
{
info_ptr = pdi.sibling;
@@ -1152,7 +1156,7 @@ scan_partial_symbols (info_ptr, objfile, lowpc, highpc)
/* If we didn't find a lowpc, set it to highpc to avoid complaints
from `maint check'. */
- if (*lowpc == ((CORE_ADDR) -1))
+ if (*lowpc == ((CORE_ADDR) - 1))
*lowpc = *highpc;
return info_ptr;
}
@@ -1170,20 +1174,20 @@ add_partial_symbol (pdi, objfile)
if (pdi->is_external)
{
/*prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
- mst_text, objfile);*/
+ mst_text, objfile); */
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_BLOCK,
&objfile->global_psymbols,
- 0, pdi->lowpc + baseaddr, cu_language, objfile);
+ 0, pdi->lowpc + baseaddr, cu_language, objfile);
}
else
{
/*prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
- mst_file_text, objfile);*/
+ mst_file_text, objfile); */
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_BLOCK,
&objfile->static_psymbols,
- 0, pdi->lowpc + baseaddr, cu_language, objfile);
+ 0, pdi->lowpc + baseaddr, cu_language, objfile);
}
break;
case DW_TAG_variable:
@@ -1217,7 +1221,7 @@ add_partial_symbol (pdi, objfile)
return;
addr = decode_locdesc (pdi->locdesc, objfile);
/*prim_record_minimal_symbol (pdi->name, addr + baseaddr,
- mst_file_data, objfile);*/
+ mst_file_data, objfile); */
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_STATIC,
&objfile->static_psymbols,
@@ -1236,7 +1240,7 @@ add_partial_symbol (pdi, objfile)
case DW_TAG_union_type:
case DW_TAG_enumeration_type:
/* Skip aggregate types without children, these are external
- references. */
+ references. */
if (pdi->has_children == 0)
return;
add_psymbol_to_list (pdi->name, strlen (pdi->name),
@@ -1310,11 +1314,11 @@ psymtab_to_symtab_1 (pst)
struct cleanup *back_to;
/* Set local variables from the partial symbol table info. */
- offset = DWARF_INFO_OFFSET(pst);
- dwarf_info_buffer = DWARF_INFO_BUFFER(pst);
- dwarf_abbrev_buffer = DWARF_ABBREV_BUFFER(pst);
- dwarf_abbrev_size = DWARF_ABBREV_SIZE(pst);
- dwarf_line_buffer = DWARF_LINE_BUFFER(pst);
+ offset = DWARF_INFO_OFFSET (pst);
+ dwarf_info_buffer = DWARF_INFO_BUFFER (pst);
+ dwarf_abbrev_buffer = DWARF_ABBREV_BUFFER (pst);
+ dwarf_abbrev_size = DWARF_ABBREV_SIZE (pst);
+ dwarf_line_buffer = DWARF_LINE_BUFFER (pst);
baseaddr = ANOFFSET (pst->section_offsets, 0);
cu_header_offset = offset;
info_ptr = dwarf_info_buffer + offset;
@@ -1349,8 +1353,8 @@ psymtab_to_symtab_1 (pst)
if (!dwarf2_get_pc_bounds (dies, &lowpc, &highpc, objfile))
{
/* Some compilers don't define a DW_AT_high_pc attribute for
- the compilation unit. If the DW_AT_high_pc is missing,
- synthesize it, by scanning the DIE's below the compilation unit. */
+ the compilation unit. If the DW_AT_high_pc is missing,
+ synthesize it, by scanning the DIE's below the compilation unit. */
highpc = 0;
if (dies->has_children)
{
@@ -1407,8 +1411,8 @@ process_die (die, objfile)
break;
case DW_TAG_inlined_subroutine:
/* FIXME: These are ignored for now.
- They could be used to set breakpoints on all inlined instances
- of a function and make GDB `next' properly over inlined functions. */
+ They could be used to set breakpoints on all inlined instances
+ of a function and make GDB `next' properly over inlined functions. */
break;
case DW_TAG_lexical_block:
read_lexical_block_scope (die, objfile);
@@ -1464,7 +1468,7 @@ read_file_scope (die, objfile)
struct objfile *objfile;
{
unsigned int line_offset = 0;
- CORE_ADDR lowpc = ((CORE_ADDR) -1);
+ CORE_ADDR lowpc = ((CORE_ADDR) - 1);
CORE_ADDR highpc = ((CORE_ADDR) 0);
struct attribute *attr;
char *name = "<unknown>";
@@ -1496,7 +1500,7 @@ read_file_scope (die, objfile)
/* If we didn't find a lowpc, set it to highpc to avoid complaints
from finish_block. */
- if (lowpc == ((CORE_ADDR) -1))
+ if (lowpc == ((CORE_ADDR) - 1))
lowpc = highpc;
lowpc += baseaddr;
highpc += baseaddr;
@@ -1537,8 +1541,8 @@ read_file_scope (die, objfile)
/* We assume that we're processing GCC output. */
processing_gcc_compilation = 2;
#if 0
- /* FIXME:Do something here. */
- if (dip->at_producer != NULL)
+ /* FIXME:Do something here. */
+ if (dip->at_producer != NULL)
{
handle_producer (dip->at_producer);
}
@@ -1801,20 +1805,20 @@ dwarf2_add_field (fip, die, objfile)
if (BITS_BIG_ENDIAN)
{
/* For big endian bits, the DW_AT_bit_offset gives the
- additional bit offset from the MSB of the containing
- anonymous object to the MSB of the field. We don't
- have to do anything special since we don't need to
- know the size of the anonymous object. */
+ additional bit offset from the MSB of the containing
+ anonymous object to the MSB of the field. We don't
+ have to do anything special since we don't need to
+ know the size of the anonymous object. */
FIELD_BITPOS (*fp) += DW_UNSND (attr);
}
else
{
/* For little endian bits, compute the bit offset to the
- MSB of the anonymous object, subtract off the number of
- bits from the MSB of the field to the MSB of the
- object, and then subtract off the number of bits of
- the field itself. The result is the bit offset of
- the LSB of the field. */
+ MSB of the anonymous object, subtract off the number of
+ bits from the MSB of the field to the MSB of the
+ object, and then subtract off the number of bits of
+ the field itself. The result is the bit offset of
+ the LSB of the field. */
int anonymous_size;
int bit_offset = DW_UNSND (attr);
@@ -1847,7 +1851,7 @@ dwarf2_add_field (fip, die, objfile)
&objfile->type_obstack);
/* Change accessibility for artificial fields (e.g. virtual table
- pointer or virtual base class pointer) to private. */
+ pointer or virtual base class pointer) to private. */
if (dwarf_attr (die, DW_AT_artificial))
{
new_field->accessibility = DW_ACCESS_private;
@@ -1860,7 +1864,7 @@ dwarf2_add_field (fip, die, objfile)
char *cp;
/* C++ static member.
- Get physical name, extract field name from physical name. */
+ Get physical name, extract field name from physical name. */
physname = dwarf2_linkage_name (die);
if (physname == NULL)
return;
@@ -1876,10 +1880,10 @@ dwarf2_add_field (fip, die, objfile)
}
SET_FIELD_PHYSNAME (*fp, obsavestring (physname, strlen (physname),
- &objfile->type_obstack));
+ &objfile->type_obstack));
FIELD_TYPE (*fp) = die_type (die, objfile);
FIELD_NAME (*fp) = obsavestring (fieldname, strlen (fieldname),
- &objfile->type_obstack);
+ &objfile->type_obstack);
}
else if (die->tag == DW_TAG_inheritance)
{
@@ -1950,33 +1954,33 @@ dwarf2_attach_fields_to_type (fip, type, objfile)
TYPE_FIELD (type, nfields) = fip->fields->field;
switch (fip->fields->accessibility)
{
- case DW_ACCESS_private:
- SET_TYPE_FIELD_PRIVATE (type, nfields);
- break;
+ case DW_ACCESS_private:
+ SET_TYPE_FIELD_PRIVATE (type, nfields);
+ break;
- case DW_ACCESS_protected:
- SET_TYPE_FIELD_PROTECTED (type, nfields);
- break;
+ case DW_ACCESS_protected:
+ SET_TYPE_FIELD_PROTECTED (type, nfields);
+ break;
- case DW_ACCESS_public:
- break;
+ case DW_ACCESS_public:
+ break;
- default:
- /* Unknown accessibility. Complain and treat it as public. */
- {
- complain (&dwarf2_unsupported_accessibility,
- fip->fields->accessibility);
- }
- break;
+ default:
+ /* Unknown accessibility. Complain and treat it as public. */
+ {
+ complain (&dwarf2_unsupported_accessibility,
+ fip->fields->accessibility);
+ }
+ break;
}
if (nfields < fip->nbaseclasses)
{
switch (fip->fields->virtuality)
{
- case DW_VIRTUALITY_virtual:
- case DW_VIRTUALITY_pure_virtual:
- SET_TYPE_FIELD_VIRTUAL (type, nfields);
- break;
+ case DW_VIRTUALITY_virtual:
+ case DW_VIRTUALITY_pure_virtual:
+ SET_TYPE_FIELD_VIRTUAL (type, nfields);
+ break;
}
}
fip->fields = fip->fields->next;
@@ -2009,7 +2013,7 @@ skip_member_fn_name (physname)
{
/* Take care of trailing underscores. */
if (endname[1] != '_')
- endname--;
+ endname--;
}
return endname;
}
@@ -2036,12 +2040,12 @@ dwarf2_add_member_fn (fip, die, type, objfile)
if (physname == NULL)
return;
if ((physname[0] == '_' && physname[1] == '_'
- && strchr ("0123456789Qt", physname[2]))
+ && strchr ("0123456789Qt", physname[2]))
|| DESTRUCTOR_PREFIX_P (physname))
{
/* Constructor and destructor field names are set to the name
- of the class, but without template parameter lists.
- The name might be missing for anonymous aggregates. */
+ of the class, but without template parameter lists.
+ The name might be missing for anonymous aggregates. */
if (TYPE_TAG_NAME (type))
{
char *p = strchr (TYPE_TAG_NAME (type), '<');
@@ -2065,7 +2069,7 @@ dwarf2_add_member_fn (fip, die, type, objfile)
char *endname = skip_member_fn_name (physname);
/* Ignore member function if we were unable not extract the member
- function name. */
+ function name. */
if (endname == physname)
return;
fieldname = obsavestring (physname, endname - physname,
@@ -2089,10 +2093,10 @@ dwarf2_add_member_fn (fip, die, type, objfile)
fip->fnfieldlists = (struct fnfieldlist *)
xrealloc (fip->fnfieldlists,
(fip->nfnfields + DW_FIELD_ALLOC_CHUNK)
- * sizeof (struct fnfieldlist));
+ * sizeof (struct fnfieldlist));
if (fip->nfnfields == 0)
- make_cleanup ((make_cleanup_func) free_current_contents,
- &fip->fnfieldlists);
+ make_cleanup ((make_cleanup_func) free_current_contents,
+ &fip->fnfieldlists);
}
flp = &fip->fnfieldlists[fip->nfnfields];
flp->name = fieldname;
@@ -2137,11 +2141,11 @@ dwarf2_add_member_fn (fip, die, type, objfile)
smash_to_method_type (fnp->type, type, return_type, arg_types);
/* Handle static member functions.
- Dwarf2 has no clean way to discern C++ static and non-static
- member functions. G++ helps GDB by marking the first
- parameter for non-static member functions (which is the
- this pointer) as artificial. We obtain this information
- from read_subroutine_type via TYPE_FIELD_ARTIFICIAL. */
+ Dwarf2 has no clean way to discern C++ static and non-static
+ member functions. G++ helps GDB by marking the first
+ parameter for non-static member functions (which is the
+ this pointer) as artificial. We obtain this information
+ from read_subroutine_type via TYPE_FIELD_ARTIFICIAL. */
if (nparams == 0 || TYPE_FIELD_ARTIFICIAL (die->type, 0) == 0)
fnp->voffset = VOFFSET_STATIC;
}
@@ -2161,12 +2165,12 @@ dwarf2_add_member_fn (fip, die, type, objfile)
{
switch (DW_UNSND (attr))
{
- case DW_ACCESS_private:
- fnp->is_private = 1;
- break;
- case DW_ACCESS_protected:
- fnp->is_protected = 1;
- break;
+ case DW_ACCESS_private:
+ fnp->is_private = 1;
+ break;
+ case DW_ACCESS_protected:
+ fnp->is_protected = 1;
+ break;
}
}
@@ -2203,7 +2207,7 @@ dwarf2_attach_fn_fields_to_type (fip, type, objfile)
fn_flp->fn_fields = (struct fn_field *)
TYPE_ALLOC (type, sizeof (struct fn_field) * flp->length);
for (k = flp->length; (k--, nfp); nfp = nfp->next)
- fn_flp->fn_fields[k] = nfp->fnfield;
+ fn_flp->fn_fields[k] = nfp->fnfield;
total_length += flp->length;
}
@@ -2258,7 +2262,7 @@ read_structure_scope (die, objfile)
else
{
/* FIXME: TYPE_CODE_CLASS is currently defined to TYPE_CODE_STRUCT
- in gdbtypes.h. */
+ in gdbtypes.h. */
TYPE_CODE (type) = TYPE_CODE_CLASS;
}
@@ -2323,7 +2327,7 @@ read_structure_scope (die, objfile)
{
dwarf2_attach_fn_fields_to_type (&fi, type, objfile);
- /* Get the type which refers to the base class (possibly this
+ /* Get the type which refers to the base class (possibly this
class itself) which contains the vtable pointer for the current
class from the DW_AT_containing_type attribute. */
@@ -2334,7 +2338,8 @@ read_structure_scope (die, objfile)
TYPE_VPTR_BASETYPE (type) = t;
if (type == t)
{
- static const char vptr_name[] = { '_','v','p','t','r','\0' };
+ static const char vptr_name[] =
+ {'_', 'v', 'p', 't', 'r', '\0'};
int i;
/* Our own class provides vtbl ptr. */
@@ -2355,7 +2360,7 @@ read_structure_scope (die, objfile)
/* Complain if virtual function table field not found. */
if (i < TYPE_N_BASECLASSES (t))
complain (&dwarf2_vtbl_not_found_complaint,
- TYPE_TAG_NAME (type) ? TYPE_TAG_NAME (type) : "");
+ TYPE_TAG_NAME (type) ? TYPE_TAG_NAME (type) : "");
}
else
{
@@ -2445,7 +2450,7 @@ read_enumeration (die, objfile)
fields = (struct field *)
xrealloc (fields,
(num_fields + DW_FIELD_ALLOC_CHUNK)
- * sizeof (struct field));
+ * sizeof (struct field));
}
FIELD_NAME (fields[num_fields]) = SYMBOL_NAME (sym);
@@ -2537,9 +2542,9 @@ read_array_type (die, objfile)
low = DW_SND (attr);
}
else if (attr->form == DW_FORM_udata
- || attr->form == DW_FORM_data1
- || attr->form == DW_FORM_data2
- || attr->form == DW_FORM_data4)
+ || attr->form == DW_FORM_data1
+ || attr->form == DW_FORM_data2
+ || attr->form == DW_FORM_data4)
{
low = DW_UNSND (attr);
}
@@ -2563,9 +2568,9 @@ read_array_type (die, objfile)
high = DW_SND (attr);
}
else if (attr->form == DW_FORM_udata
- || attr->form == DW_FORM_data1
- || attr->form == DW_FORM_data2
- || attr->form == DW_FORM_data4)
+ || attr->form == DW_FORM_data1
+ || attr->form == DW_FORM_data2
+ || attr->form == DW_FORM_data4)
{
high = DW_UNSND (attr);
}
@@ -2596,10 +2601,10 @@ read_array_type (die, objfile)
{
range_types = (struct type **)
xrealloc (range_types, (ndim + DW_FIELD_ALLOC_CHUNK)
- * sizeof (struct type *));
+ * sizeof (struct type *));
if (ndim == 0)
- make_cleanup ((make_cleanup_func) free_current_contents,
- &range_types);
+ make_cleanup ((make_cleanup_func) free_current_contents,
+ &range_types);
}
range_types[ndim++] = create_range_type (NULL, index_type, low, high);
}
@@ -2802,13 +2807,13 @@ read_tag_string_type (die, objfile)
/* Handle DIES due to C code like:
struct foo
- {
- int (*funcp)(int a, long l);
- int b;
- };
+ {
+ int (*funcp)(int a, long l);
+ int b;
+ };
('funcp' generates a DW_TAG_subroutine_type DIE)
-*/
+ */
static void
read_subroutine_type (die, objfile)
@@ -2863,10 +2868,10 @@ read_subroutine_type (die, objfile)
if (child_die->tag == DW_TAG_formal_parameter)
{
/* Dwarf2 has no clean way to discern C++ static and non-static
- member functions. G++ helps GDB by marking the first
- parameter for non-static member functions (which is the
- this pointer) as artificial. We pass this information
- to dwarf2_add_member_fn via TYPE_FIELD_ARTIFICIAL. */
+ member functions. G++ helps GDB by marking the first
+ parameter for non-static member functions (which is the
+ this pointer) as artificial. We pass this information
+ to dwarf2_add_member_fn via TYPE_FIELD_ARTIFICIAL. */
attr = dwarf_attr (child_die, DW_AT_artificial);
if (attr)
TYPE_FIELD_ARTIFICIAL (ftype, iparams) = DW_UNSND (attr);
@@ -2988,8 +2993,8 @@ read_base_type (die, objfile)
struct die_info *
read_comp_unit (info_ptr, abfd)
- char *info_ptr;
- bfd *abfd;
+ char *info_ptr;
+ bfd *abfd;
{
struct die_info *first_die, *last_die, *die;
char *cur_ptr;
@@ -3071,7 +3076,7 @@ dwarf2_read_section (objfile, offset, size)
{
buf = NULL;
error ("Dwarf Error: Can't read DWARF data from '%s'",
- bfd_get_filename (abfd));
+ bfd_get_filename (abfd));
}
return buf;
}
@@ -3083,7 +3088,7 @@ dwarf2_read_section (objfile, offset, size)
static void
dwarf2_read_abbrevs (abfd, offset)
- bfd * abfd;
+ bfd *abfd;
unsigned int offset;
{
char *abbrev_ptr;
@@ -3122,7 +3127,7 @@ dwarf2_read_abbrevs (abfd, offset)
cur_abbrev->attrs = (struct attr_abbrev *)
xrealloc (cur_abbrev->attrs,
(cur_abbrev->num_attrs + ATTR_ALLOC_CHUNK)
- * sizeof (struct attr_abbrev));
+ * sizeof (struct attr_abbrev));
}
cur_abbrev->attrs[cur_abbrev->num_attrs].name = abbrev_name;
cur_abbrev->attrs[cur_abbrev->num_attrs++].form = abbrev_form;
@@ -3138,13 +3143,13 @@ dwarf2_read_abbrevs (abfd, offset)
/* Get next abbreviation.
Under Irix6 the abbreviations for a compilation unit are not
- always properly terminated with an abbrev number of 0.
- Exit loop if we encounter an abbreviation which we have
- already read (which means we are about to read the abbreviations
- for the next compile unit) or if the end of the abbreviation
- table is reached. */
+ always properly terminated with an abbrev number of 0.
+ Exit loop if we encounter an abbreviation which we have
+ already read (which means we are about to read the abbreviations
+ for the next compile unit) or if the end of the abbreviation
+ table is reached. */
if ((unsigned int) (abbrev_ptr - dwarf_abbrev_buffer)
- >= dwarf_abbrev_size)
+ >= dwarf_abbrev_size)
break;
abbrev_number = read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read);
abbrev_ptr += bytes_read;
@@ -3205,7 +3210,7 @@ dwarf2_lookup_abbrev (number)
static char *
read_partial_die (part_die, abfd, info_ptr, has_pc_info)
struct partial_die_info *part_die;
- bfd * abfd;
+ bfd *abfd;
char *info_ptr;
int *has_pc_info;
{
@@ -3214,7 +3219,7 @@ read_partial_die (part_die, abfd, info_ptr, has_pc_info)
struct attribute attr;
struct attribute spec_attr;
int found_spec_attr = 0;
- int has_low_pc_attr = 0;
+ int has_low_pc_attr = 0;
int has_high_pc_attr = 0;
*part_die = zeroed_partial_die;
@@ -3239,7 +3244,7 @@ read_partial_die (part_die, abfd, info_ptr, has_pc_info)
info_ptr = read_attribute (&attr, &abbrev->attrs[i], abfd, info_ptr);
/* Store the data if it is of an attribute we want to keep in a
- partial symbol table. */
+ partial symbol table. */
switch (attr.name)
{
case DW_AT_name:
@@ -3283,7 +3288,7 @@ read_partial_die (part_die, abfd, info_ptr, has_pc_info)
/* Ignore absolute siblings, they might point outside of
the current compile unit. */
if (attr.form == DW_FORM_ref_addr)
- complain(&dwarf2_absolute_sibling_complaint);
+ complain (&dwarf2_absolute_sibling_complaint);
else
part_die->sibling =
dwarf_info_buffer + dwarf2_get_ref_die_offset (&attr);
@@ -3584,7 +3589,7 @@ read_address (abfd, buf)
static char *
read_n_bytes (abfd, buf, size)
- bfd * abfd;
+ bfd *abfd;
char *buf;
unsigned int size;
{
@@ -3765,12 +3770,12 @@ dwarf_attr (die, name)
if (spec)
{
struct die_info *ref_die =
- follow_die_ref (dwarf2_get_ref_die_offset (spec));
+ follow_die_ref (dwarf2_get_ref_die_offset (spec));
if (ref_die)
return dwarf_attr (ref_die, name);
}
-
+
return NULL;
}
@@ -3782,20 +3787,20 @@ struct filenames
{
unsigned int num_files;
struct fileinfo
- {
- char *name;
- unsigned int dir;
- unsigned int time;
- unsigned int size;
- }
- *files;
+ {
+ char *name;
+ unsigned int dir;
+ unsigned int time;
+ unsigned int size;
+ }
+ *files;
};
struct directories
-{
- unsigned int num_dirs;
- char **dirs;
-};
+ {
+ unsigned int num_dirs;
+ char **dirs;
+ };
static void
dwarf_decode_lines (offset, comp_dir, abfd)
@@ -3851,8 +3856,8 @@ dwarf_decode_lines (offset, comp_dir, abfd)
line_ptr += 1;
lh.standard_opcode_lengths = (unsigned char *)
xmalloc (lh.opcode_base * sizeof (unsigned char));
- back_to = make_cleanup ((make_cleanup_func) free_current_contents,
- &lh.standard_opcode_lengths);
+ back_to = make_cleanup ((make_cleanup_func) free_current_contents,
+ &lh.standard_opcode_lengths);
lh.standard_opcode_lengths[0] = 1;
for (i = 1; i < lh.opcode_base; ++i)
@@ -3886,10 +3891,10 @@ dwarf_decode_lines (offset, comp_dir, abfd)
files.files = (struct fileinfo *)
xrealloc (files.files,
(files.num_files + FILE_ALLOC_CHUNK)
- * sizeof (struct fileinfo));
+ * sizeof (struct fileinfo));
if (files.num_files == 0)
- make_cleanup ((make_cleanup_func) free_current_contents,
- &files.files);
+ make_cleanup ((make_cleanup_func) free_current_contents,
+ &files.files);
}
files.files[files.num_files].name = cur_file;
files.files[files.num_files].dir =
@@ -3929,7 +3934,7 @@ dwarf_decode_lines (offset, comp_dir, abfd)
}
/* Decode the table. */
- while (! end_sequence)
+ while (!end_sequence)
{
op_code = read_1_byte (abfd, line_ptr);
line_ptr += 1;
@@ -3962,10 +3967,10 @@ dwarf_decode_lines (offset, comp_dir, abfd)
files.files = (struct fileinfo *)
xrealloc (files.files,
(files.num_files + FILE_ALLOC_CHUNK)
- * sizeof (struct fileinfo));
+ * sizeof (struct fileinfo));
if (files.num_files == 0)
- make_cleanup ((make_cleanup_func) free_current_contents,
- &files.files);
+ make_cleanup ((make_cleanup_func) free_current_contents,
+ &files.files);
}
files.files[files.num_files].name = cur_file;
files.files[files.num_files].dir =
@@ -3999,7 +4004,7 @@ dwarf_decode_lines (offset, comp_dir, abfd)
break;
case DW_LNS_set_file:
/* The file and directory tables are 0 based, the references
- are 1 based. */
+ are 1 based. */
file = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
line_ptr += bytes_read;
dwarf2_start_subfile
@@ -4050,12 +4055,12 @@ done:
/srcdir and compiling it with Irix6.2 cc in /compdir using a filename
of /srcdir/list0.c yields the following debugging information for list0.c:
- DW_AT_name: /srcdir/list0.c
- DW_AT_comp_dir: /compdir
- files.files[0].name: list0.h
- files.files[0].dir: /srcdir
- files.files[1].name: list0.c
- files.files[1].dir: /srcdir
+ DW_AT_name: /srcdir/list0.c
+ DW_AT_comp_dir: /compdir
+ files.files[0].name: list0.h
+ files.files[0].dir: /srcdir
+ files.files[1].name: list0.c
+ files.files[1].dir: /srcdir
The line number information for list0.c has to end up in a single
subfile, so that `break /srcdir/list0.c:1' works as expected. */
@@ -4092,7 +4097,7 @@ dwarf2_start_subfile (filename, dirname)
and return a pointer to it.
If TYPE is NULL, determine symbol type from the die, otherwise
used the passed type.
- */
+ */
static struct symbol *
new_symbol (die, type, objfile)
@@ -4117,7 +4122,7 @@ new_symbol (die, type, objfile)
&objfile->symbol_obstack);
/* Default assumptions.
- Use the passed type or decode it from the die. */
+ Use the passed type or decode it from the die. */
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
SYMBOL_CLASS (sym) = LOC_STATIC;
if (type != NULL)
@@ -4192,7 +4197,7 @@ new_symbol (die, type, objfile)
decode_locdesc (DW_BLOCK (attr), objfile);
add_symbol_to_list (sym, &global_symbols);
- /* In shared libraries the address of the variable
+ /* In shared libraries the address of the variable
in the location descriptor might still be relocatable,
so its value could be zero.
Enter the symbol as a LOC_UNRESOLVED symbol, if its
@@ -4239,11 +4244,11 @@ new_symbol (die, type, objfile)
else
{
/* We do not know the address of this symbol.
- If it is an external symbol and we have type information
- for it, enter the symbol as a LOC_UNRESOLVED symbol.
- The address of the variable will then be determined from
- the minimal symbol table whenever the variable is
- referenced. */
+ If it is an external symbol and we have type information
+ for it, enter the symbol as a LOC_UNRESOLVED symbol.
+ The address of the variable will then be determined from
+ the minimal symbol table whenever the variable is
+ referenced. */
attr2 = dwarf_attr (die, DW_AT_external);
if (attr2 && (DW_UNSND (attr2) != 0)
&& dwarf_attr (die, DW_AT_type) != NULL)
@@ -4307,8 +4312,8 @@ new_symbol (die, type, objfile)
if (cu_language == language_cplus)
{
struct symbol *typedef_sym = (struct symbol *)
- obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
+ obstack_alloc (&objfile->symbol_obstack,
+ sizeof (struct symbol));
*typedef_sym = *sym;
SYMBOL_NAMESPACE (typedef_sym) = VAR_NAMESPACE;
if (TYPE_NAME (SYMBOL_TYPE (sym)) == 0)
@@ -5514,7 +5519,7 @@ dump_die (die)
case DW_FORM_string:
fprintf (stderr, "string: \"%s\"",
DW_STRING (&die->attrs[i])
- ? DW_STRING (&die->attrs[i]) : "");
+ ? DW_STRING (&die->attrs[i]) : "");
break;
case DW_FORM_flag:
if (DW_UNSND (&die->attrs[i]))
@@ -5528,7 +5533,7 @@ dump_die (die)
case DW_FORM_data8: /* we do not have 64 bit quantities */
default:
fprintf (stderr, "unsupported attribute form: %d.",
- die->attrs[i].form);
+ die->attrs[i].form);
}
fprintf (stderr, "\n");
}
@@ -5656,7 +5661,7 @@ dwarf2_fundamental_type (objfile, typeid)
DW_AT_frame_base attribute, the global islocal flag is set.
Hopefully the machine dependent code knows how to set up a virtual
frame pointer for the local references.
-
+
Note that stack[0] is unused except as a default error return.
Note that stack overflow is not yet handled. */
@@ -5828,7 +5833,7 @@ decode_locdesc (blk, objfile)
case DW_OP_constu:
stack[++stacki] = read_unsigned_leb128 (NULL, (data + i),
- &bytes_read);
+ &bytes_read);
i += bytes_read;
break;
@@ -5855,13 +5860,13 @@ decode_locdesc (blk, objfile)
case DW_OP_deref:
isderef = 1;
/* If we're not the last op, then we definitely can't encode
- this using GDB's address_class enum. */
+ this using GDB's address_class enum. */
if (i < size)
complain (&dwarf2_complex_location_expr);
break;
default:
- complain (&dwarf2_unsupported_stack_op, dwarf_stack_op_name(op));
+ complain (&dwarf2_unsupported_stack_op, dwarf_stack_op_name (op));
return (stack[stacki]);
}
}