* findvar.c (extract_signed_integer): Cast *p to LONGEST before doing

the xor and subtract.  Otherwise it will not sign extend if the type
	of LONGEST is larger than int.
	* cp-valprint.c (cp_print_class_method):  Inhibit core dump if
	domain is an undefined cross reference.
	* valops.c (call_function_by_hand):  Set real_pc to correct
This commit is contained in:
Peter Schauer
1993-09-17 11:46:50 +00:00
parent 9d6323bace
commit 30d20d1545
3 changed files with 21 additions and 5 deletions

View File

@@ -910,16 +910,16 @@ call_function_by_hand (function, nargs, args)
error ("text segment full -- no place to put call");
checked = 1;
sp = old_sp;
start_sp = text_end - sizeof dummy;
write_memory (start_sp, (char *)dummy1, sizeof dummy);
real_pc = text_end - sizeof dummy;
write_memory (real_pc, (char *)dummy1, sizeof dummy);
}
#else /* After text_end. */
{
extern CORE_ADDR text_end;
int errcode;
sp = old_sp;
start_sp = text_end;
errcode = target_write_memory (start_sp, (char *)dummy1, sizeof dummy);
real_pc = text_end;
errcode = target_write_memory (real_pc, (char *)dummy1, sizeof dummy);
if (errcode != 0)
error ("Cannot write text segment -- call_function failed");
}
@@ -1072,7 +1072,7 @@ call_function_by_hand (function, nargs, args)
wrong things (like set stop_bpstat to the wrong thing). */
discard_cleanups (old_chain);
/* Prevent memory leak. */
bpstat_clear (inf_status.stop_bpstat);
bpstat_clear (&inf_status.stop_bpstat);
/* The following error message used to say "The expression
which contained the function call has been discarded." It