* cp-abi.h, hpacc-abi.c, gnu-v2-abi.c, cp-abi.c: Ditto.

This commit is contained in:
Andrew Cagney 2001-10-21 01:06:25 +00:00
parent 3bc62f91f4
commit e933e53888
5 changed files with 30 additions and 25 deletions

View file

@ -4,6 +4,7 @@
value_ptr with ``struct value *''.
* wrapper.c: Replace value_ptr with ``struct value *''.
* breakpoint.h, breakpoint.c: Ditto.
* cp-abi.h, hpacc-abi.c, gnu-v2-abi.c, cp-abi.c: Ditto.
2001-10-20 Andrew Cagney <ac131313@redhat.com>

View file

@ -60,8 +60,8 @@ is_operator_name (const char *name)
return (*current_cp_abi.is_operator_name) (name);
}
value_ptr
value_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
struct value *
value_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
struct type * type, int offset)
{
if ((current_cp_abi.virtual_fn_field) == NULL)
@ -69,7 +69,7 @@ value_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
return (*current_cp_abi.virtual_fn_field) (arg1p, f, j, type, offset);
}
struct type *
value_rtti_type (value_ptr v, int *full, int *top, int *using_enc)
value_rtti_type (struct value *v, int *full, int *top, int *using_enc)
{
if ((current_cp_abi.rtti_type) == NULL)
return NULL;

View file

@ -25,6 +25,8 @@
#ifndef CP_ABI_H_
#define CP_ABI_H_ 1
struct value;
/* The functions here that attempt to determine what sort of thing a
mangled name refers to may well be revised in the future. It would
certainly be cleaner to carry this information explicitly in GDB's
@ -99,9 +101,9 @@ extern int is_operator_name (const char *name);
TYPE is the base type of *VALUEP whose method we're invoking ---
this is the type containing F. OFFSET is the offset of that base
type within *VALUEP. */
extern value_ptr value_virtual_fn_field (value_ptr *valuep,
struct fn_field *f, int j,
struct type *type, int offset);
extern struct value *value_virtual_fn_field (struct value **valuep,
struct fn_field *f, int j,
struct type *type, int offset);
/* Try to find the run-time type of VALUE, using C++ run-time type
@ -142,9 +144,9 @@ struct cp_abi_ops
enum dtor_kinds (*is_destructor_name) (const char *name);
int (*is_vtable_name) (const char *name);
int (*is_operator_name) (const char *name);
value_ptr (*virtual_fn_field) (value_ptr * arg1p, struct fn_field * f,
int j, struct type * type, int offset);
struct type *(*rtti_type) (value_ptr v, int *full, int *top,
struct value *(*virtual_fn_field) (struct value **arg1p, struct fn_field * f,
int j, struct type * type, int offset);
struct type *(*rtti_type) (struct value *v, int *full, int *top,
int *using_enc);
};

View file

@ -82,11 +82,11 @@ gnuv2_is_operator_name (const char *name)
J is an index into F which provides the desired virtual function.
TYPE is the type in which F is located. */
static value_ptr
gnuv2_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
static struct value *
gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
struct type * type, int offset)
{
value_ptr arg1 = *arg1p;
struct value *arg1 = *arg1p;
struct type *type1 = check_typedef (VALUE_TYPE (arg1));
@ -95,8 +95,10 @@ gnuv2_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
with a strange type, so cast it to type `pointer to long' (which
should serve just fine as a function type). Then, index into
the table, and convert final value to appropriate function type. */
value_ptr entry, vfn, vtbl;
value_ptr vi = value_from_longest (builtin_type_int,
struct value *entry;
struct value *vfn;
struct value *vtbl;
struct value *vi = value_from_longest (builtin_type_int,
(LONGEST) TYPE_FN_FIELD_VOFFSET (f, j));
struct type *fcontext = TYPE_FN_FIELD_FCONTEXT (f, j);
struct type *context;
@ -110,7 +112,7 @@ gnuv2_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
/* Now context is a pointer to the basetype containing the vtbl. */
if (TYPE_TARGET_TYPE (context) != type1)
{
value_ptr tmp = value_cast (context, value_addr (arg1));
struct value *tmp = value_cast (context, value_addr (arg1));
arg1 = value_ind (tmp);
type1 = check_typedef (VALUE_TYPE (arg1));
}
@ -179,12 +181,12 @@ gnuv2_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
struct type *
gnuv2_value_rtti_type (value_ptr v, int *full, int *top, int *using_enc)
gnuv2_value_rtti_type (struct value *v, int *full, int *top, int *using_enc)
{
struct type *known_type;
struct type *rtti_type;
CORE_ADDR coreptr;
value_ptr vp;
struct value *vp;
int using_enclosing = 0;
long top_offset = 0;
char rtti_type_name[256];
@ -246,7 +248,7 @@ gnuv2_value_rtti_type (value_ptr v, int *full, int *top, int *using_enc)
*/
if (VALUE_ENCLOSING_TYPE(v) != VALUE_TYPE(v))
{
value_ptr tempval;
struct value *tempval;
int bitpos = TYPE_BASECLASS_BITPOS (known_type,
TYPE_VPTR_FIELDNO (known_type));
tempval=value_field (v, TYPE_VPTR_FIELDNO(known_type));

View file

@ -80,16 +80,16 @@ hpacc_is_vtable_name (const char *name)
J is an index into F which provides the desired virtual function.
TYPE is the type in which F is located. */
static value_ptr
hpacc_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
static struct value *
hpacc_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
struct type * type, int offset)
{
value_ptr arg1 = *arg1p;
struct value *arg1 = *arg1p;
struct type *type1 = check_typedef (VALUE_TYPE (arg1));
/* Deal with HP/Taligent runtime model for virtual functions */
value_ptr vp;
value_ptr argp; /* arg1 cast to base */
struct value *vp;
struct value *argp; /* arg1 cast to base */
CORE_ADDR coreptr; /* pointer to target address */
int class_index; /* which class segment pointer to use */
struct type *ftype = TYPE_FN_FIELD_TYPE (f, j); /* method type */
@ -175,12 +175,12 @@ hpacc_virtual_fn_field (value_ptr * arg1p, struct fn_field * f, int j,
static struct type *
hpacc_value_rtti_type (value_ptr v, int *full, int *top, int *using_enc)
hpacc_value_rtti_type (struct value *v, int *full, int *top, int *using_enc)
{
struct type *known_type;
struct type *rtti_type;
CORE_ADDR coreptr;
value_ptr vp;
struct value *vp;
int using_enclosing = 0;
long top_offset = 0;
char rtti_type_name[256];