34 #include "aout/stab_gnu.h"
36 #include "aout/aout64.h"
172 _(
"register number %d too large (max %d) in symbol %s"),
173 regnum, num_regs - 1, sym);
187 static struct symbol *current_symbol = NULL;
204 #define STABS_CONTINUE(pp,objfile) \
206 if (**(pp) == '\\' || (**(pp) == '?' && (*(pp))[1] == '\0')) \
207 *(pp) = next_symbol_text (objfile); \
225 #define INITIAL_TYPE_VECTOR_LENGTH 160
235 static struct type **
238 int filenum = typenums[0];
239 int index = typenums[1];
251 _(
"Invalid symbol data: type number "
252 "(%d,%d) out of range at symtab pos %d."),
266 static struct type *temp_type;
280 type_vector = (
struct type **)
287 type_vector = (
struct type **)
290 memset (&type_vector[old_len], 0,
293 return (&type_vector[index]);
301 static struct type *temp_type;
303 warning (
_(
"GDB internal error: bad real_filenum"));
312 f_orig_length = f->
length;
313 if (index >= f_orig_length)
315 while (index >= f->
length)
321 memset (&f->
vector[f_orig_length], 0,
322 (f->
length - f_orig_length) * sizeof (
struct type *));
324 return (&f->
vector[index]);
337 struct type **type_addr;
339 if (typenums[0] == -1)
374 for (ii = 0; ii < stabs->
count; ++ii)
376 name = stabs->
stab[ii];
377 pp = (
char *) strchr (name,
':');
382 pp = (
char *) strchr (pp,
':');
405 if (*(pp - 1) ==
'F' || *(pp - 1) ==
'f')
422 if (*(pp - 1) ==
'F' || *(pp - 1) ==
'f')
471 #define VISIBILITY_PRIVATE '0'
472 #define VISIBILITY_PROTECTED '1'
473 #define VISIBILITY_PUBLIC '2'
474 #define VISIBILITY_IGNORE '9'
486 #define MAX_CHUNK_REFS 100
487 #define REF_CHUNK_SIZE (MAX_CHUNK_REFS * sizeof (struct ref_map))
488 #define REF_MAP_SIZE(ref_chunk) ((ref_chunk) * REF_CHUNK_SIZE)
522 int new_chunks = new_slots / MAX_CHUNK_REFS + 1;
524 ref_map = (
struct ref_map *)
526 memset (ref_map +
ref_chunk * MAX_CHUNK_REFS, 0,
531 ref_map[refnum].
sym =
sym;
541 return ref_map[refnum].
sym;
560 while (*p && isdigit (*p))
562 refnum = refnum * 10 + *p -
'0';
634 char *new_name = NULL;
658 _(
"Bad stabs string '%s'"),
string);
665 nameless = (p ==
string || ((
string[0] ==
' ') && (
string[1] ==
':')));
720 char *
name = alloca (p -
string + 1);
722 memcpy (name,
string, p -
string);
726 if (new_name != NULL)
749 if (!strchr (
"cfFGpPrStTvVXCR", *p))
751 if (isdigit (*p) || *p ==
'(' || *p ==
'-')
781 struct type *dbl_type;
823 struct type *range_type;
829 if (quote !=
'\'' && quote !=
'"')
839 while (*p && *p != quote)
841 if (*p ==
'\\' && p[1] == quote)
843 string_local[ind] = (
gdb_byte) quote;
849 string_local[ind] = (
gdb_byte) (*p);
864 string_local[ind] = 0;
873 memcpy (string_value, string_local, ind + 1);
933 process_function_types:
950 process_prototype_types:
976 if (p[0] ==
'0' && p[1] ==
'\0')
1002 goto process_function_types;
1092 goto process_prototype_types;
1175 if (msym.minsym != NULL)
1313 synonym = *p ==
't';
1340 *typedef_sym = *sym;
1367 if (msym.minsym != NULL)
1470 static struct type *
1474 _(
"couldn't parse type; debugger out of date?"));
1478 while (**pp !=
'\0')
1484 if ((*pp)[-1] ==
'\\' || (*pp)[-1] ==
'?')
1503 static struct type *
1509 char type_descriptor;
1524 if ((**pp >=
'0' && **pp <=
'9')
1556 typenums[0] = typenums[1] = -1;
1561 type_descriptor = (*pp)[-1];
1562 switch (type_descriptor)
1576 char *
from, *
to, *p, *q1, *q2;
1595 _(
"Unrecognized cross-reference type `%c'"),
1602 q1 = strchr (*pp,
'<');
1603 p = strchr (*pp,
':');
1606 if (q1 && p > q1 && p[1] ==
':')
1608 int nesting_level = 0;
1610 for (q2 = q1; *q2; q2++)
1614 else if (*q2 ==
'>')
1616 else if (*q2 ==
':' && nesting_level == 0)
1626 char *new_name, *
name = alloca (p - *pp + 1);
1628 memcpy (name, *pp, p - *pp);
1629 name[p - *pp] =
'\0';
1631 if (new_name != NULL)
1634 new_name, strlen (new_name));
1638 if (type_name == NULL)
1640 to = type_name = (
char *)
1660 for (i = 0; i < ppt->
nsyms; i++)
1671 if (typenums[0] != -1)
1714 struct type *xtype =
read_type (pp, objfile);
1722 else if (type_size >= 0 || is_string)
1798 const char *type_start = (*pp) - 1;
1799 struct type *return_type =
read_type (pp, objfile);
1805 struct type_list *next;
1809 while (**pp && **pp !=
'#')
1811 struct type *arg_type =
read_type (pp, objfile);
1812 struct type_list *newobj = alloca (
sizeof (*newobj));
1813 newobj->type = arg_type;
1814 newobj->next = arg_types;
1823 _(
"Prototyped function type didn't "
1824 "end arguments with `#':\n%s"),
1831 && ! arg_types->next
1837 num_args *
sizeof (
struct field));
1841 struct type_list *t;
1846 for (t = arg_types, i = num_args - 1; t; t = t->next, i--)
1869 if (isdigit (**pp) || **pp ==
'(' || **pp ==
'-')
1873 struct type *domain =
read_type (pp, objfile);
1874 struct type *memtype;
1891 while (**pp !=
';' && **pp !=
'\0')
1901 type_size = atoi (attr + 1);
1927 if ((*pp)[0] ==
'#')
1930 struct type *return_type;
1934 if (*(*pp)++ !=
';')
1936 _(
"invalid (minimal) member type "
1937 "data format at symtab pos %d."),
1940 if (typenums[0] != -1)
1945 struct type *domain =
read_type (pp, objfile);
1946 struct type *return_type;
1957 args =
read_args (pp,
';', objfile, &nargs, &varargs);
1968 if (typenums[0] != -1)
1976 if (typenums[0] != -1)
1983 if (typenums[0] != -1)
1990 if (typenums[0] != -1)
1999 switch (type_descriptor)
2028 if (typenums[0] != -1)
2040 warning (
_(
"GDB internal error, type is NULL in stabsread.c."));
2045 if (type_size != -1)
2056 static struct type *
2059 struct type **negative_types = objfile_data (objfile,
2063 #define NUMBER_RECOGNIZED 34
2064 struct type *rettype = NULL;
2072 if (!negative_types)
2080 if (negative_types[-typenum] != NULL)
2081 return negative_types[-typenum];
2083 #if TARGET_CHAR_BIT != 8
2084 #error This code wrong for TARGET_CHAR_BIT not 8
2112 "unsigned char", objfile);
2119 "unsigned short", objfile);
2123 "unsigned int", objfile);
2127 "unsigned", objfile);
2131 "unsigned long", objfile);
2155 "boolean", objfile);
2168 "character", objfile);
2172 "logical*1", objfile);
2176 "logical*2", objfile);
2180 "logical*4", objfile);
2184 "logical", objfile);
2215 "unsigned long long", objfile);
2219 "logical*8", objfile);
2225 negative_types[-typenum] = rettype;
2241 if (method_name == NULL)
2244 _(
"Method has bad physname %s\n"), physname);
2275 struct next_fnfield *next;
2279 struct type *look_ahead_type;
2281 struct next_fnfield *new_sublist;
2304 look_ahead_type = NULL;
2323 static char opname[32] =
"op$";
2324 char *o = opname + 3;
2335 main_fn_name =
savestring (opname, o - opname);
2350 (
struct next_fnfield *)
xmalloc (
sizeof (
struct next_fnfield));
2352 memset (new_sublist, 0,
sizeof (
struct next_fnfield));
2355 if (look_ahead_type == NULL)
2360 new_sublist->fn_field.type =
read_type (pp, objfile);
2370 new_sublist->fn_field.type = look_ahead_type;
2371 look_ahead_type = NULL;
2389 if (
TYPE_STUB (new_sublist->fn_field.type))
2393 new_sublist->fn_field.is_stub = 1;
2396 new_sublist->fn_field.physname =
savestring (*pp, p - *pp);
2403 new_sublist->fn_field.is_private = 1;
2406 new_sublist->fn_field.is_protected = 1;
2414 new_sublist->fn_field.is_const = 0;
2415 new_sublist->fn_field.is_volatile = 0;
2419 new_sublist->fn_field.is_const = 1;
2420 new_sublist->fn_field.is_volatile = 0;
2424 new_sublist->fn_field.is_const = 0;
2425 new_sublist->fn_field.is_volatile = 1;
2429 new_sublist->fn_field.is_const = 1;
2430 new_sublist->fn_field.is_volatile = 1;
2440 _(
"const/volatile indicator missing, got '%c'"),
2457 new_sublist->fn_field.voffset =
2463 if (**pp ==
';' || **pp ==
'\0')
2466 new_sublist->fn_field.fcontext = 0;
2473 look_ahead_type =
read_type (pp, objfile);
2480 new_sublist->fn_field.fcontext = look_ahead_type;
2489 look_ahead_type = NULL;
2497 int slen = strlen (main_fn_name);
2511 if (!(strncmp (new_sublist->fn_field.physname,
2512 main_fn_name, slen) == 0
2513 && new_sublist->fn_field.physname[slen] ==
'_'
2514 && new_sublist->fn_field.physname[slen + 1] ==
'_'))
2516 new_sublist->fn_field.is_stub = 1;
2524 _(
"member function type missing, got '%c'"),
2530 new_sublist->fn_field.voffset = 0;
2531 new_sublist->fn_field.fcontext = 0;
2535 new_sublist->next = sublist;
2536 sublist = new_sublist;
2540 while (**pp !=
';' && **pp !=
'\0');
2547 if (
strcmp_iw (main_fn_name,
"__base_ctor ") == 0
2548 ||
strcmp_iw (main_fn_name,
"__base_dtor ") == 0
2549 || strcmp (main_fn_name,
"__deleting_dtor") == 0)
2551 xfree (main_fn_name);
2556 int has_destructor = 0, has_other = 0;
2558 struct next_fnfield *tmp_sublist;
2616 tmp_sublist = sublist;
2617 while (tmp_sublist != NULL)
2619 if (tmp_sublist->fn_field.is_stub)
2621 if (tmp_sublist->fn_field.physname[0] ==
'_'
2622 && tmp_sublist->fn_field.physname[1] ==
'Z')
2630 tmp_sublist = tmp_sublist->next;
2633 if (has_destructor && has_other)
2636 struct next_fnfield *last_sublist;
2650 sizeof (
struct fn_field) * has_destructor);
2652 sizeof (
struct fn_field) * has_destructor);
2653 tmp_sublist = sublist;
2654 last_sublist = NULL;
2656 while (tmp_sublist != NULL)
2660 tmp_sublist = tmp_sublist->next;
2665 = tmp_sublist->fn_field;
2667 last_sublist->next = tmp_sublist->next;
2669 sublist = tmp_sublist->next;
2670 last_sublist = tmp_sublist;
2671 tmp_sublist = tmp_sublist->next;
2676 fip->
fnlist = destr_fnlist;
2678 length -= has_destructor;
2688 char *new_method_name =
2691 if (new_method_name != NULL
2692 && strcmp (new_method_name,
2696 xfree (main_fn_name);
2699 xfree (new_method_name);
2705 "~", main_fn_name, (
char *)NULL);
2706 xfree (main_fn_name);
2710 char dem_opname[256];
2714 dem_opname, DMGL_ANSI);
2721 dem_opname, strlen (dem_opname));
2722 xfree (main_fn_name);
2727 sizeof (
struct fn_field) * length);
2729 sizeof (
struct fn_field) * length);
2730 for (i = length; (i--, sublist); sublist = sublist->next)
2737 fip->
fnlist = new_fnlist;
2767 struct type *context;
2801 _(
"C++ abbreviated type name "
2802 "unknown at symtab pos %d"),
2807 name, (
char *) NULL);
2813 "INVALID_CPLUSPLUS_ABBREV",
2901 else if (**pp !=
',')
3016 while (**pp !=
';' && **pp !=
'\0')
3022 memset (newobj, 0,
sizeof (
struct nextfield));
3046 while (*p !=
':' && *p !=
'\0')
3060 if (p[0] ==
':' && p[1] ==
':')
3133 pointer = (
char *)
TYPE_ALLOC (type, num_bytes);
3144 memset (newobj, 0,
sizeof (
struct nextfield));
3163 _(
"Unknown virtual character `%c' for baseclass"),
3181 _(
"Unknown visibility `%c' for baseclass"),
3241 if (**pp ==
'=' || **pp ==
'+' || **pp ==
'-')
3249 if (*(*pp)++ ==
'%')
3262 while (*p !=
'\0' && *p !=
';')
3290 _(
"virtual function table pointer "
3291 "not found when defining class `%s'"),
3331 int non_public_fields = 0;
3339 for (scan = fip->
list; scan != NULL; scan = scan->
next)
3344 non_public_fields++;
3357 if (non_public_fields)
3379 while (nfields-- > 0)
3403 _(
"Unknown visibility `%c' for field"),
3419 const char *
name =
"";
3420 const char *kind =
"";
3445 _(
"struct/union type gets multiply defined: %s%s"), kind, name);
3475 while (ntype != type)
3499 static struct type *
3573 static struct type *
3577 struct type *index_type, *element_type, *range_type;
3597 if (!(**pp >=
'0' && **pp <=
'9') && **pp !=
'-')
3607 if (!(**pp >=
'0' && **pp <=
'9') && **pp !=
'-')
3636 static struct type *
3650 int unsigned_enum = 1;
3662 o_nsyms = osyms ? osyms->
nsyms : 0;
3679 while (**pp && **pp !=
';' && **pp !=
',')
3728 for (syms = *symlist, n = nsyms - 1; syms; syms = syms->
next)
3730 int last = syms == osyms ? o_nsyms : 0;
3731 int j = syms->
nsyms;
3733 for (; --j >= last; --n)
3762 static struct type *
3791 else if (**pp ==
'b')
3830 signed_type ? 0 : TYPE_FLAG_UNSIGNED, (
char *) NULL,
3834 static struct type *
3840 struct type *rettype;
3853 if (details == NF_COMPLEX || details == NF_COMPLEX16
3854 || details == NF_COMPLEX32)
3894 int twos_complement_representation = 0;
3914 if (sign > 0 && radix == 8 && twos_complement_bits > 0)
3922 while ((c = *p1) >=
'0' && c <
'8')
3926 if (len > twos_complement_bits / 3
3927 || (twos_complement_bits % 3 == 0
3928 && len == twos_complement_bits / 3))
3932 sign_bit = (twos_complement_bits % 3 + 2) % 3;
3934 if (c & (1 << sign_bit))
3937 twos_complement_representation = 1;
3945 while ((c = *p++) >=
'0' && c < (
'0' + radix))
3947 if (n <= upper_limit)
3949 if (twos_complement_representation)
3955 long sn = c -
'0' - ((2 * (c -
'0')) | (2 << sign_bit));
3986 else if (c ==
'2' || c ==
'3')
4007 if (radix == 8 && twos_complement_bits > 0 && nbits > twos_complement_bits)
4031 if (sign == -1 && !twos_complement_representation)
4046 static struct type *
4051 char *orig_pp = *pp;
4056 struct type *result_type;
4057 struct type *index_type = NULL;
4063 self_subrange = (rangenums[0] == typenums[0] &&
4064 rangenums[1] == typenums[1]);
4081 if (n2bits == -1 || n3bits == -1)
4085 goto handle_true_range;
4088 if (n2bits != 0 || n3bits != 0)
4090 char got_signed = 0;
4091 char got_unsigned = 0;
4098 if (n2bits <= type_size && n3bits <= type_size)
4100 if (n2bits == type_size && n2bits > n3bits)
4107 else if ((n2bits == 0 && n2 == 0) && n3bits != 0)
4115 else if ((n2bits != 0 && n3bits != 0 && n2bits == n3bits + 1)
4116 || (n2bits != 0 && n3bits == 0
4124 if (got_signed || got_unsigned)
4135 if (self_subrange && n2 == 0 && n3 == 0)
4150 if (n3 == 0 && n2 > 0)
4152 struct type *float_type
4157 struct type *complex_type =
4161 return complex_type;
4169 else if (n2 == 0 && n3 == -1)
4171 int bits = type_size;
4187 else if (self_subrange && n2 == 0 && n3 == 127)
4210 for (bytes = 0; (bits & 0xff) == 0xff; bytes++)
4213 && ((bytes - 1) & bytes) == 0)
4221 else if (n3 == 0 && n2 < 0
4226 else if (n2 == -n3 - 1)
4232 if (n3 == 0x7fffffff)
4244 if (index_type == NULL)
4250 _(
"base type %d of range type is not defined"), rangenums[1]);
4257 return (result_type);
4264 static struct field *
4269 struct type *types[1024];
4303 memset (rval, 0, n *
sizeof (
struct field));
4304 for (i = 0; i < n; i++)
4305 rval[i].
type = types[i];
4335 _(
"Invalid symbol data: common block within common block"));
4340 name, strlen (name));
4377 for (j = 0; j < next->
nsyms; j++)
4385 if (common_block != NULL)
4413 for (j = next->
nsyms - 1; j >= 0; j--)
4435 noname_undefs = (
struct nat *)
4451 undef_types = (
struct type **)
4489 struct nat nat = noname_undefs[i];
4504 noname_undefs_length = 0;
4561 if (type_name == NULL)
4568 for (i = 0; i < ppt->
nsyms; i++)
4590 _(
"forward-referenced types left unresolved, "
4598 undef_types_length = 0;
4620 struct symbol *sym, *prev;
4621 struct objfile *resolve_objfile;
4631 resolve_objfile = objfile;
4637 for (hash = 0; hash <
HASHSIZE; hash++)
4642 if (hash >= HASHSIZE)
4718 if (resolve_objfile == objfile)
4720 resolve_objfile = objfile;
4725 for (hash = 0; hash <
HASHSIZE; hash++)
4742 _(
"%s: common block `%s' from "
4743 "global_sym_chain unresolved"),
4780 type_vector = (
struct type **) 0;
4793 xfree (type_vector);
4818 if (s[0] ==
'-' || *s ==
'+')
4823 error (
_(
"invalid symbol name \"%s\""), name);
4825 s = strchr (s,
']');
4828 error (
_(
"invalid symbol name \"%s\""), name);
4830 return strchr (s,
':');
4834 return strchr (s,
':');
4847 undef_types = (
struct type **)
4852 noname_undefs = (
struct nat *)
4856 &stab_register_funcs);
4858 &stab_register_funcs);
void set_type_vptr_basetype(struct type *type, struct type *basetype)
int gdbarch_stab_reg_to_regnum(struct gdbarch *gdbarch, int stab_regnr)
#define VISIBILITY_PRIVATE
static struct type * read_type(char **, struct objfile *)
#define VISIBILITY_IGNORE
static int attach_fields_to_type(struct field_info *, struct type *, struct objfile *)
#define STABS_CONTINUE(pp, objfile)
static void read_one_struct_field(struct field_info *, char **, char *, struct type *, struct objfile *)
void stabsread_new_init(void)
#define OBSTACK_CALLOC(OBSTACK, NUMBER, TYPE)
static int read_baseclasses(struct field_info *, char **, struct type *, struct objfile *)
void common_block_end(struct objfile *objfile)
struct type * create_static_range_type(struct type *result_type, struct type *index_type, LONGEST low_bound, LONGEST high_bound)
#define SYMBOL_PRINT_NAME(symbol)
static int attach_fn_fields_to_type(struct field_info *, struct type *)
#define TYPE_FIELD_PRIVATE_BITS(thistype)
static void add_undefined_type_noname(struct type *type, int typenums[2])
#define MSYMBOL_LINKAGE_NAME(symbol)
static void add_undefined_type_1(struct type *type)
struct fn_field * fn_fields
void replace_type(struct type *ntype, struct type *type)
#define TYPE_FIELD_NAME(thistype, n)
#define TYPE_N_BASECLASSES(thistype)
static struct type * error_type(char **, struct objfile *)
int hashname(const char *name)
struct next_fnfieldlist * fnlist
int strcmp_iw(const char *string1, const char *string2)
void _initialize_stabsread(void)
#define TYPE_NFN_FIELDS(thistype)
void add_symbol_to_list(struct symbol *symbol, struct pending **listhead)
int gdbarch_int_bit(struct gdbarch *gdbarch)
static void fix_common_block(struct symbol *, CORE_ADDR)
EXTERN unsigned char processing_gcc_compilation
#define BMSYMBOL_VALUE_ADDRESS(symbol)
struct type * builtin_double
static char * common_block_name
void warning(const char *fmt,...)
static void scan(struct macro_buffer *dest, struct macro_buffer *src, struct macro_name_list *no_loop, macro_lookup_ftype *lookup_func, void *lookup_baton)
struct type * create_array_type(struct type *result_type, struct type *element_type, struct type *range_type)
void set_type_vptr_fieldno(struct type *type, int fieldno)
#define TYPE_NAME(thistype)
#define TYPE_FIELD_ARTIFICIAL(thistype, n)
#define INIT_CPLUS_SPECIFIC(type)
static struct type * read_enum_type(char **, struct type *, struct objfile *)
static struct ref_map * ref_map
void scan_file_globals(struct objfile *objfile)
#define TYPE_FIELD_VIRTUAL_BITS(thistype)
#define SYMBOL_SET_LINKAGE_NAME(symbol, linkage_name)
static struct type * dbx_alloc_type(int[2], struct objfile *)
const struct objfile_type * objfile_type(struct objfile *objfile)
EXPORTED_CONST char vtbl_ptr_name[]
#define SYMBOL_CLASS(symbol)
struct type * make_function_type(struct type *type, struct type **typeptr)
EXTERN struct pending * file_symbols
#define TYPE_FIELD_PROTECTED_BITS(thistype)
static struct type * read_sun_floating_type(char **, int[2], struct objfile *)
void smash_to_method_type(struct type *type, struct type *self_type, struct type *to_type, struct field *args, int nargs, int varargs)
static char * find_name_end(char *name)
struct symbol * symbol[PENDINGSIZE]
struct type * make_pointer_type(struct type *type, struct type **typeptr)
static struct type ** dbx_lookup_type(int typenums[2], struct objfile *objfile)
static int read_cpp_abbrev(struct field_info *, char **, struct type *, struct objfile *)
static int type_vector_length
struct type * init_type(enum type_code code, int length, int flags, const char *name, struct objfile *objfile)
int gdbarch_num_regs(struct gdbarch *gdbarch)
#define TYPE_FIELD_IGNORE_BITS(thistype)
#define SET_FIELD_BITPOS(thisfld, bitpos)
struct type * builtin_long
#define TYPE_FIELD(thistype, n)
#define bits(obj, st, fn)
#define TYPE_PROTOTYPED(t)
#define TYPE_FIELD_TYPE(thistype, n)
static struct pending * common_block
#define VISIBILITY_PROTECTED
int gdbarch_stabs_argument_has_addr(struct gdbarch *gdbarch, struct type *type)
char * method_name_from_physname(const char *physname)
int gdbarch_believe_pcc_promotion(struct gdbarch *gdbarch)
static void set_length_in_type_chain(struct type *type)
EXTERN struct subfile * current_subfile
struct obstack objfile_obstack
int gdbarch_num_pseudo_regs(struct gdbarch *gdbarch)
void null_cleanup(void *arg)
struct type * make_reference_type(struct type *type, struct type **typeptr)
void common_block_start(char *name, struct objfile *objfile)
#define TYPE_VPTR_FIELDNO(thistype)
int is_cplus_marker(int c)
void finish_global_stabs(struct objfile *objfile)
#define TYPE_INSTANCE_FLAGS(thistype)
EXTERN unsigned int symnum
#define SYMBOL_ACLASS_INDEX(symbol)
struct type * check_typedef(struct type *type)
#define SYMBOL_VALUE_ADDRESS(symbol)
struct type * create_set_type(struct type *result_type, struct type *domain_type)
static struct type * read_sun_builtin_type(char **, int[2], struct objfile *)
static void reg_value_complaint(int regnum, int num_regs, const char *sym)
#define SYMBOL_DOMAIN(symbol)
EXTERN struct pending * global_symbols
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
static int read_type_number(char **, int *)
#define SYMBOL_SET_LANGUAGE(symbol, language, obstack)
static int undef_types_allocated
static int undef_types_length
static struct type * read_array_type(char **, struct type *, struct objfile *)
static struct type ** type_vector
struct type * builtin_char
char * obconcat(struct obstack *obstackp,...)
static void cleanup_undefined_types_1(void)
#define ALLOCATE_CPLUS_STRUCT_TYPE(type)
void cleanup_undefined_stabs_types(struct objfile *objfile)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void complaint(struct complaints **complaints, const char *fmt,...)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
#define SET_TYPE_FIELD_IGNORE(thistype, n)
struct gdbarch * get_objfile_arch(const struct objfile *objfile)
EXTERN struct pending * local_symbols
enum dtor_kinds is_destructor_name(const char *name)
#define TYPE_TARGET_STUB(t)
#define next_symbol_text(objfile)
#define SET_TYPE_FIELD_PRIVATE(thistype, n)
struct symbol * define_symbol(CORE_ADDR valu, char *string, int desc, int type, struct objfile *objfile)
static int process_reference(char **string)
struct type * alloc_type(struct objfile *objfile)
static struct type * rs6000_builtin_type(int, struct objfile *)
#define SYMBOL_LINE(symbol)
EXTERN int previous_stab_code
#define SYMBOL_LINKAGE_NAME(symbol)
void stabsread_clear_cache(void)
#define SET_FIELD_ENUMVAL(thisfld, enumval)
static int noname_undefs_length
static void cleanup_undefined_types_noname(struct objfile *objfile)
static char * stabs_method_name_from_physname(const char *physname)
#define TYPE_BASECLASS(thistype, index)
#define TYPE_FIELDS(thistype)
char * cp_canonicalize_string(const char *string)
const char * objfile_name(const struct objfile *objfile)
#define FIELD_BITSIZE(thisfld)
#define TYPE_FIELD_BITSIZE(thistype, n)
#define N_HEADER_FILES(OBJFILE)
static void invalid_cpp_abbrev_complaint(const char *arg1)
EXTERN int n_this_object_header_files
#define SYMBOL_VALUE(symbol)
#define SYMBOL_VALUE_CHAIN(symbol)
struct type * builtin_int
unsigned long hash(const void *addr, int length)
void smash_to_memberptr_type(struct type *type, struct type *self_type, struct type *to_type)
EXTERN struct pending_stabs * global_stabs
static int stab_regparm_index
PTR xrealloc(PTR ptr, size_t size)
static struct field * read_args(char **, int, struct objfile *, int *, int *)
#define REF_MAP_SIZE(ref_chunk)
void cp_scan_for_anonymous_namespaces(const struct symbol *const symbol, struct objfile *const objfile)
#define TYPE_CHAIN(thistype)
#define SYMBOL_SET_NAMES(symbol, linkage_name, len, copy_name, objfile)
#define MSYMBOL_TYPE(msymbol)
struct type * make_cv_type(int cnst, int voltl, struct type *type, struct type **typeptr)
#define SET_TYPE_FIELD_VIRTUAL(thistype, n)
struct next_fnfieldlist * next
#define TYPE_TARGET_TYPE(thistype)
struct symbol * allocate_symbol(struct objfile *objfile)
static struct type * read_struct_type(char **, struct type *, enum type_code, struct objfile *)
#define VISIBILITY_PUBLIC
void set_type_self_type(struct type *type, struct type *self_type)
#define INITIAL_TYPE_VECTOR_LENGTH
void ref_add(int refnum, struct symbol *sym, char *stabs, CORE_ADDR value)
#define TYPE_CODE(thistype)
#define HEADER_FILES(OBJFILE)
#define TYPE_BASECLASS_NAME(thistype, index)
int symbol_reference_defined(char **string)
struct complaints * symfile_complaints
const char * gdbarch_static_transform_name(struct gdbarch *gdbarch, const char *name)
static struct type * read_range_type(char **, int[2], int, struct objfile *)
int gdbarch_long_long_bit(struct gdbarch *gdbarch)
static const char vptr_name[]
#define MSYMBOL_SECTION(symbol)
static void stabs_general_complaint(const char *arg1)
EXTERN int * this_object_header_files
static void add_undefined_type(struct type *, int[2])
int register_symbol_register_impl(enum address_class aclass, const struct symbol_register_ops *ops)
#define TYPE_NFIELDS(thistype)
static struct type ** undef_types
#define SYMBOL_LANGUAGE(symbol)
static struct nat * noname_undefs
static void complain_about_struct_wipeout(struct type *type)
#define SET_TYPE_FIELD_PROTECTED(thistype, n)
#define TYPE_TAG_NAME(type)
static int stab_reg_to_regnum(struct symbol *sym, struct gdbarch *gdbarch)
#define ALL_OBJFILE_MSYMBOLS(objfile, m)
static const char vb_name[]
char * savestring(const char *ptr, size_t len)
double atof(const char *)
struct type * builtin_unsigned_int
#define NUMBER_RECOGNIZED
static int read_tilde_fields(struct field_info *, char **, struct type *, struct objfile *)
#define TYPE_ALLOC(t, size)
#define SYMBOL_TYPE(symbol)
struct type * allocate_stub_method(struct type *type)
struct symbol * find_symbol_in_list(struct pending *list, char *name, int length)
static long read_huge_number(char **, int, int *, int)
#define TYPE_FN_FIELDLISTS(thistype)
const char * type_name_no_tag(const struct type *type)
#define TYPE_LENGTH(thistype)
void stabsread_init(void)
static int common_block_i
static int noname_undefs_allocated
#define SYMBOL_SECTION(symbol)
#define FIELD_BITPOS(thisfld)
static const struct objfile_data * rs6000_builtin_type_data
#define SYMBOL_VALUE_BYTES(symbol)
int gdbarch_static_transform_name_p(struct gdbarch *gdbarch)
EXTERN int within_function
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
static int read_struct_fields(struct field_info *, char **, struct type *, struct objfile *)
static void patch_block_stabs(struct pending *, struct pending_stabs *, struct objfile *)
static int stab_register_index
#define TYPE_SELF_TYPE(thistype)
void make_vector_type(struct type *array_type)
void error(const char *fmt,...)
struct symbol * ref_search(int refnum)
void store_typed_floating(void *addr, const struct type *type, DOUBLEST val)
struct type * lookup_pointer_type(struct type *type)
static int read_member_functions(struct field_info *, char **, struct type *, struct objfile *)
EXTERN struct symbol * global_sym_chain[HASHSIZE]
void do_cleanups(struct cleanup *old_chain)
#define MSYMBOL_VALUE_ADDRESS(objfile, symbol)
#define FIELD_TYPE(thisfld)
struct type * builtin_error
struct type * lookup_function_type(struct type *type)
#define SYMBOL_IS_ARGUMENT(symbol)
#define SET_FIELD_PHYSNAME(thisfld, name)
const ULONGEST const LONGEST len
struct fn_fieldlist fn_fieldlist