mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 19:09:31 +08:00
* gdbtypes.h (struct cplus_struct_type): Remove runtime_ptr member.
(TYPE_RUNTIME_PTR, TYPE_VTABLE, TYPE_HAS_VTABLE, TYPE_PRIMARY_BASE, TYPE_VIRTUAL_BASE_LIST): Remove macros. (HP_ACC_VFUNC_START, HP_ACC_VBASE_START, HP_ACC_TYPEINFO_OFFSET, HP_ACC_TOP_OFFSET_OFFSET): Likewise. (has_vtable, primary_base_class, virtual_base_list_length, virtual_base_list_length_skip_primaries, virtual_base_index, virtual_base_index_skip_primaries, class_index_in_primary_list, count_virtual_fns): Remove prototypes. * gdbtypes.c (has_vtable, primary_base_class, current_vbase_list, virtual_base_list_aux, virtual_base_list, virtual_base_list_length, virtual_base_list_length_skip_primaries, virtual_base_index, virtual_base_index_skip_primaries, class_index_in_primary_list, count_virtual_fns): Remove. * cp-valprint.c (cp_print_hpacc_virtual_table_entries): Remove. (hpacc_vtbl_ptr_name, hpacc_vtbl_ptr_type_name): Remove. (cp_print_value_fields): Remove support for HP aCC vtables. (cp_print_value): Likewise. * c-typeprint.c (c_type_print_base): Likewise. * value.h (find_rt_vbase_offset): Remove prototype. * valops.c (find_rt_vbase_offset): Remove. (search_struct_method): Remove support for HP aCC vtables. (find_method_list): Likewise.
This commit is contained in:
@ -761,32 +761,6 @@ struct cplus_struct_type
|
||||
short ninstantiations;
|
||||
struct type **instantiations;
|
||||
|
||||
/* The following points to information relevant to the runtime model
|
||||
* of the compiler.
|
||||
* Currently being used only for HP's ANSI C++ compiler.
|
||||
* (This type may have to be changed/enhanced for other compilers.)
|
||||
*
|
||||
* RUNTIME_PTR is NULL if there is no runtime information (currently
|
||||
* this means the type was not compiled by HP aCC).
|
||||
*
|
||||
* Fields in structure pointed to:
|
||||
* ->HAS_VTABLE : 0 => no virtual table, 1 => vtable present
|
||||
*
|
||||
* ->PRIMARY_BASE points to the first non-virtual base class that has
|
||||
* a virtual table.
|
||||
*
|
||||
* ->VIRTUAL_BASE_LIST points to a list of struct type * pointers that
|
||||
* point to the type information for all virtual bases among this type's
|
||||
* ancestors.
|
||||
*/
|
||||
struct runtime_info
|
||||
{
|
||||
short has_vtable;
|
||||
struct type *primary_base;
|
||||
struct type **virtual_base_list;
|
||||
}
|
||||
*runtime_ptr;
|
||||
|
||||
/* Pointer to information about enclosing scope, if this is a
|
||||
* local type. If it is not a local type, this is NULL
|
||||
*/
|
||||
@ -975,12 +949,6 @@ extern void allocate_cplus_struct_type (struct type *);
|
||||
#define TYPE_FN_FIELD_VIRTUAL_P(thisfn, n) ((thisfn)[n].voffset > 1)
|
||||
#define TYPE_FN_FIELD_STATIC_P(thisfn, n) ((thisfn)[n].voffset == VOFFSET_STATIC)
|
||||
|
||||
#define TYPE_RUNTIME_PTR(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->runtime_ptr)
|
||||
#define TYPE_VTABLE(thistype) (TYPE_RUNTIME_PTR(thistype)->has_vtable)
|
||||
#define TYPE_HAS_VTABLE(thistype) (TYPE_RUNTIME_PTR(thistype) && TYPE_VTABLE(thistype))
|
||||
#define TYPE_PRIMARY_BASE(thistype) (TYPE_RUNTIME_PTR(thistype)->primary_base)
|
||||
#define TYPE_VIRTUAL_BASE_LIST(thistype) (TYPE_RUNTIME_PTR(thistype)->virtual_base_list)
|
||||
|
||||
#define TYPE_LOCALTYPE_PTR(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr)
|
||||
#define TYPE_LOCALTYPE_FILE(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr->file)
|
||||
#define TYPE_LOCALTYPE_LINE(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr->line)
|
||||
@ -1358,46 +1326,6 @@ extern int get_discrete_bounds (struct type *, LONGEST *, LONGEST *);
|
||||
|
||||
extern int is_ancestor (struct type *, struct type *);
|
||||
|
||||
extern int has_vtable (struct type *);
|
||||
|
||||
extern struct type *primary_base_class (struct type *);
|
||||
|
||||
extern int virtual_base_list_length (struct type *);
|
||||
extern int virtual_base_list_length_skip_primaries (struct type *);
|
||||
|
||||
extern int virtual_base_index (struct type *, struct type *);
|
||||
extern int virtual_base_index_skip_primaries (struct type *, struct type *);
|
||||
|
||||
|
||||
extern int class_index_in_primary_list (struct type *);
|
||||
|
||||
extern int count_virtual_fns (struct type *);
|
||||
|
||||
/* Constants for HP/Taligent ANSI C++ runtime model */
|
||||
|
||||
/* Where virtual function entries begin in the
|
||||
* virtual table, in the non-RRBC vtable format.
|
||||
* First 4 are the metavtable pointer, top offset,
|
||||
* typeinfo pointer, and dup base info pointer */
|
||||
#define HP_ACC_VFUNC_START 4
|
||||
|
||||
/* (Negative) Offset where virtual base offset entries begin
|
||||
* in the virtual table. Skips over metavtable pointer and
|
||||
* the self-offset entry.
|
||||
* NOTE: NEGATE THIS BEFORE USING! The virtual base offsets
|
||||
* appear before the address point of the vtable (the slot
|
||||
* pointed to by the object's vtable pointer), i.e. at lower
|
||||
* addresses than the vtable pointer. */
|
||||
#define HP_ACC_VBASE_START 2
|
||||
|
||||
/* (Positive) Offset where the pointer to the typeinfo
|
||||
* object is present in the virtual table */
|
||||
#define HP_ACC_TYPEINFO_OFFSET 2
|
||||
|
||||
/* (Positive) Offset where the ``top offset'' entry of
|
||||
* the virtual table is */
|
||||
#define HP_ACC_TOP_OFFSET_OFFSET 1
|
||||
|
||||
/* Overload resolution */
|
||||
|
||||
#define LENGTH_MATCH(bv) ((bv)->rank[0])
|
||||
|
Reference in New Issue
Block a user