error ("not implemented: member types in unpack_long");
default:
- error ("Value can't be converted to intenot integer or pointer.");
+ error ("Value can't be converted to integer.");
}
return 0; /* Placate lint. */
}
*invp = 1;
return 1.234567891011121314;
}
- return extract_floating (valaddr, TYPE_LENGTH (type));
+ return extract_floating (valaddr, len);
+ }
+ else if (nosign)
+ {
+ /* Unsigned -- be sure we compensate for signed LONGEST. */
+ return (unsigned LONGEST) unpack_long (type, valaddr);
+ }
+ else
+ {
+ /* Signed -- we are OK with unpack_long. */
+ return unpack_long (type, valaddr);
}
- else if (nosign) {
- /* Unsigned -- be sure we compensate for signed LONGEST. */
- return (unsigned LONGEST) unpack_long (type, valaddr);
- } else {
- /* Signed -- we are OK with unpack_long. */
- return unpack_long (type, valaddr);
- }
}
/* Unpack raw data (copied from debugee, target byte order) at VALADDR
sym = lookup_symbol (TYPE_FN_FIELD_PHYSNAME (f, j),
0, VAR_NAMESPACE, 0, NULL);
- if (! sym) error ("Internal error: could not find physical method named %s",
+ if (! sym)
+ return (value)NULL;
+/*
+ error ("Internal error: could not find physical method named %s",
TYPE_FN_FIELD_PHYSNAME (f, j));
+*/
v = allocate_value (ftype);
VALUE_ADDRESS (v) = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
* But we leave it in for future use, when we will hopefully
* have optimizes the vtable to use thunks instead of offsets. */
/* Use the name of vtable itself to extract a base type. */
- demangled_name += 4; /* Skip \7fvt$ prefix. */
+ demangled_name += 4; /* Skip _vt$ prefix. */
}
else
{
if (*name != '_')
return 0;
- /* gcc 2.4 uses \7fvb$. */
+ /* gcc 2.4 uses _vb$. */
if (name[1] == 'v' && name[2] == 'b' && name[3] == CPLUS_MARKER)
field_class_name = name + 4;
- /* gcc 2.5 will use \7f_vb_. */
+ /* gcc 2.5 will use __vb_. */
if (name[1] == '_' && name[2] == 'v' && name[3] == 'b' && name[4] == '_')
field_class_name = name + 5;