/* Private partial symbol table definitions.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Copyright (C) 2009-2014 Free Software Foundation, Inc.
This file is part of GDB.
ENUM_BITFIELD(domain_enum_tag) domain : 6;
- /* Address class (for info_symbols). */
+ /* Address class (for info_symbols). Note that we don't allow
+ synthetic "aclass" values here at present, simply because there's
+ no need. */
ENUM_BITFIELD(address_class) aclass : 6;
const char *dirname;
- /* Set of relocation offsets to apply to each section. */
+ /* Set of relocation offsets to apply to each section.
+ This is typically objfile->section_offsets, but in some cases
+ it's different. See, e.g., elfstab_offset_sections. */
struct section_offsets *section_offsets;
CORE_ADDR textlow;
CORE_ADDR texthigh;
- /* Array of pointers to all of the partial_symtab's which this one
- depends on. Since this array can only be set to previous or
- the current (?) psymtab, this dependency tree is guaranteed not
- to have any loops. "depends on" means that symbols must be read
- for the dependencies before being read for this psymtab; this is
- for type references in stabs, where if foo.c includes foo.h, declarations
- in foo.h may use type numbers defined in foo.c. For other debugging
- formats there may be no need to use dependencies. */
-
- struct partial_symtab **dependencies;
-
- int number_of_dependencies;
-
/* If NULL, this is an ordinary partial symbol table.
If non-NULL, this holds a single includer of this partial symbol
struct partial_symtab *user;
+ /* Array of pointers to all of the partial_symtab's which this one
+ depends on. Since this array can only be set to previous or
+ the current (?) psymtab, this dependency tree is guaranteed not
+ to have any loops. "depends on" means that symbols must be read
+ for the dependencies before being read for this psymtab; this is
+ for type references in stabs, where if foo.c includes foo.h, declarations
+ in foo.h may use type numbers defined in foo.c. For other debugging
+ formats there may be no need to use dependencies. */
+
+ struct partial_symtab **dependencies;
+
+ int number_of_dependencies;
+
/* Global symbol list. This list will be sorted after readin to
improve access. Binary search will be the usual method of
finding a symbol within it. globals_offset is an integer offset
/* Pointer to function which will read in the symtab corresponding to
this psymtab. */
- void (*read_symtab) (struct objfile *, struct partial_symtab *);
+ void (*read_symtab) (struct partial_symtab *, struct objfile *);
/* Information that lets read_symtab() locate the part of the symbol table
that this psymtab corresponds to. This information is private to the
struct partial_symbol **);
extern struct partial_symtab *allocate_psymtab (const char *,
- struct objfile *);
+ struct objfile *)
+ ATTRIBUTE_NONNULL (1);
extern void discard_psymtab (struct objfile *, struct partial_symtab *);
+extern struct cleanup *make_cleanup_discard_psymtabs (struct objfile *);
+
/* Traverse all psymtabs in one objfile. */
#define ALL_OBJFILE_PSYMTABS(objfile, p) \