/* END-FIXME */
-
-/* BEGIN-FIXME: Hooks into c-valprint.c */
-
-extern int
-c_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *, int, int, int,
- enum val_prettyprint));
-/* END-FIXME */
-
-
void
cp_print_class_method (valaddr, type, stream)
char *valaddr;
order problems. */
if (TYPE_FIELD_IGNORE (type, i))
{
- fputs_filtered ("<no value>", stream);
+ fputs_filtered ("<optimized out or zero length>", stream);
}
else
{
v = value_from_longest (TYPE_FIELD_TYPE (type, i),
unpack_field_as_long (type, valaddr, i));
- c_val_print (TYPE_FIELD_TYPE(type, i), VALUE_CONTENTS (v), 0,
- stream, format, 0, recurse + 1, pretty);
+ val_print (TYPE_FIELD_TYPE(type, i), VALUE_CONTENTS (v), 0,
+ stream, format, 0, recurse + 1, pretty);
}
}
else
{
if (TYPE_FIELD_IGNORE (type, i))
{
- fputs_filtered ("<no value>", stream);
+ fputs_filtered ("<optimized out or zero length>", stream);
}
else
{
- c_val_print (TYPE_FIELD_TYPE (type, i),
- valaddr + TYPE_FIELD_BITPOS (type, i) / 8,
- 0, stream, format, 0, recurse + 1, pretty);
+ val_print (TYPE_FIELD_TYPE (type, i),
+ valaddr + TYPE_FIELD_BITPOS (type, i) / 8,
+ 0, stream, format, 0, recurse + 1, pretty);
}
}
}
for (i = 0; i < n_baseclasses; i++)
{
+ /* FIXME-32x64--assumes that a target pointer can fit in a char *.
+ Fix it by nuking baseclass_addr. */
char *baddr;
int err;
- char *basename = TYPE_NAME (TYPE_BASECLASS (type, i));
+ char *basename;
+
+ check_stub_type (TYPE_BASECLASS (type, i));
+ basename = TYPE_NAME (TYPE_BASECLASS (type, i));
if (BASETYPE_VIA_VIRTUAL (type, i))
{
fputs_filtered (basename ? basename : "", stream);
fputs_filtered ("> = ", stream);
if (err != 0)
- fprintf_filtered (stream,
- "<invalid address 0x%lx>", (unsigned long) baddr);
+ {
+ fprintf_filtered (stream, "<invalid address ");
+ print_address_numeric ((CORE_ADDR) baddr, stream);
+ fprintf_filtered (stream, ">");
+ }
else
cp_print_value_fields (TYPE_BASECLASS (type, i), baddr, stream, format,
recurse, pretty,