diff options
Diffstat (limited to 'gdb/cp-abi.h')
-rw-r--r-- | gdb/cp-abi.h | 72 |
1 files changed, 44 insertions, 28 deletions
diff --git a/gdb/cp-abi.h b/gdb/cp-abi.h index 586be91..36316fc 100644 --- a/gdb/cp-abi.h +++ b/gdb/cp-abi.h @@ -69,7 +69,8 @@ enum dtor_kinds { `delete'. */ complete_object_dtor, - /* A destructor which finalizes a subobject of some larger object. */ + /* A destructor which finalizes a subobject of some larger + object. */ base_object_dtor }; @@ -105,8 +106,10 @@ extern int is_operator_name (const char *name); this is the type containing F. OFFSET is the offset of that base type within *VALUEP. */ extern struct value *value_virtual_fn_field (struct value **valuep, - struct fn_field *f, int j, - struct type *type, int offset); + 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 @@ -133,7 +136,8 @@ extern struct value *value_virtual_fn_field (struct value **valuep, FULL, TOP, and USING_ENC can each be zero, in which case we don't provide the corresponding piece of information. */ extern struct type *value_rtti_type (struct value *value, - int *full, int *top, int *using_enc); + int *full, int *top, + int *using_enc); /* Compute the offset of the baseclass which is the INDEXth baseclass of class TYPE, @@ -141,39 +145,44 @@ extern struct type *value_rtti_type (struct value *value, The result is the offset of the baseclass value relative to (the address of)(ARG) + OFFSET. - -1 is returned on error. */ + -1 is returned on error. */ extern int baseclass_offset (struct type *type, int index, - const bfd_byte *valaddr, CORE_ADDR address); + const bfd_byte *valaddr, + CORE_ADDR address); /* Describe the target of a pointer to method. CONTENTS is the byte pattern representing the pointer to method. TYPE is the pointer to method type. STREAM is the stream to print it to. */ -void cplus_print_method_ptr (const gdb_byte *contents, struct type *type, +void cplus_print_method_ptr (const gdb_byte *contents, + struct type *type, struct ui_file *stream); -/* Return the size of a pointer to member function of type TO_TYPE. */ +/* Return the size of a pointer to member function of type + TO_TYPE. */ int cplus_method_ptr_size (struct type *to_type); -/* Return the method which should be called by applying METHOD_PTR - to *THIS_P, and adjust *THIS_P if necessary. */ +/* Return the method which should be called by applying METHOD_PTR to + *THIS_P, and adjust *THIS_P if necessary. */ struct value *cplus_method_ptr_to_value (struct value **this_p, struct value *method_ptr); -/* Create the byte pattern in CONTENTS representing a pointer of - type TYPE to member function at ADDRESS (if IS_VIRTUAL is 0) - or with virtual table offset ADDRESS (if IS_VIRTUAL is 1). - This is the opposite of cplus_method_ptr_to_value. */ +/* Create the byte pattern in CONTENTS representing a pointer of type + TYPE to member function at ADDRESS (if IS_VIRTUAL is 0) or with + virtual table offset ADDRESS (if IS_VIRTUAL is 1). This is the + opposite of cplus_method_ptr_to_value. */ void cplus_make_method_ptr (struct type *type, gdb_byte *CONTENTS, CORE_ADDR address, int is_virtual); -/* Determine if we are currently in a C++ thunk. If so, get the address - of the routine we are thunking to and continue to there instead. */ +/* Determine if we are currently in a C++ thunk. If so, get the + address of the routine we are thunking to and continue to there + instead. */ -CORE_ADDR cplus_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc); +CORE_ADDR cplus_skip_trampoline (struct frame_info *frame, + CORE_ADDR stop_pc); -/* Return non-zero if an argument of type TYPE should be passed by reference - instead of value. */ +/* Return non-zero if an argument of type TYPE should be passed by + reference instead of value. */ extern int cp_pass_by_reference (struct type *type); struct cp_abi_ops @@ -182,22 +191,29 @@ struct cp_abi_ops const char *longname; const char *doc; - /* ABI-specific implementations for the functions declared above. */ + /* ABI-specific implementations for the functions declared + above. */ enum ctor_kinds (*is_constructor_name) (const char *name); enum dtor_kinds (*is_destructor_name) (const char *name); int (*is_vtable_name) (const char *name); int (*is_operator_name) (const char *name); - 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); + 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); int (*baseclass_offset) (struct type *type, int index, - const bfd_byte *valaddr, CORE_ADDR address); - void (*print_method_ptr) (const gdb_byte *contents, struct type *type, + const bfd_byte *valaddr, + CORE_ADDR address); + void (*print_method_ptr) (const gdb_byte *contents, + struct type *type, struct ui_file *stream); int (*method_ptr_size) (struct type *); - void (*make_method_ptr) (struct type *, gdb_byte *, CORE_ADDR, int); - struct value * (*method_ptr_to_value) (struct value **, struct value *); + void (*make_method_ptr) (struct type *, gdb_byte *, + CORE_ADDR, int); + struct value * (*method_ptr_to_value) (struct value **, + struct value *); CORE_ADDR (*skip_trampoline) (struct frame_info *, CORE_ADDR); int (*pass_by_reference) (struct type *type); }; |