* buildsym.c (scan_file_globals): Beware the null file.

Fix from Jim Williams.

* stack.c (return_command):  Evaluate expression *before* popping
off the stack frames!  Fix inspired by Jim Williams.
(up_silently_command, down_silently_command):  No sel frame is error.

* defs.h (memcpy, memset):  Conditionalize decls on
#ifndef MEM_FNS_DECLARED, since DECstation differs.
(alloca):  Break out the STDC and non-STDC alloca cases, to make
it work on old preprocessors as well as "picky ANSI" ones.
* xm-mips.h (memcpy, memset):  Declare, and set MEM_FNS_DECLARED.

* mips-tdep.c (heuristic_proc_start):  Zero arg produces zero.
* utils.c (fputs_demangled):  Rename SLOP since DECstation system
header files define it!
This commit is contained in:
John Gilmore 1992-06-30 08:53:28 +00:00
parent c47793da96
commit 0f552c5fc6
7 changed files with 102 additions and 65 deletions

View file

@ -1066,7 +1066,7 @@ up_silently_command (count_exp, from_tty)
count = parse_and_eval_address (count_exp);
count1 = count;
if (!target_has_stack)
if (target_has_stack == 0 || selected_frame == 0)
error ("No stack.");
frame = find_relative_frame (selected_frame, &count1);
@ -1099,7 +1099,7 @@ down_silently_command (count_exp, from_tty)
count = - parse_and_eval_address (count_exp);
count1 = count;
if (!target_has_stack)
if (target_has_stack == 0 || selected_frame == 0)
error ("No stack.");
frame = find_relative_frame (selected_frame, &count1);
@ -1129,6 +1129,7 @@ return_command (retval_exp, from_tty)
FRAME frame;
char *funcname;
struct cleanup *back_to;
value return_value;
if (selected_frame == NULL)
error ("No selected frame.");
@ -1136,6 +1137,16 @@ return_command (retval_exp, from_tty)
selected_frame_addr = FRAME_FP (selected_frame);
selected_frame_pc = (get_frame_info (selected_frame))->pc;
/* Compute the return value (if any -- possibly getting errors here).
Call VALUE_CONTENTS to make sure we have fully evaluated it, since
it might live in the stack frame we're about to pop. */
if (retval_exp)
{
return_value = parse_and_eval (retval_exp);
(void) (VALUE_CONTENTS (return_value));
}
/* If interactive, require confirmation. */
if (from_tty)
@ -1173,7 +1184,7 @@ return_command (retval_exp, from_tty)
for return values. */
if (retval_exp)
set_return_value (parse_and_eval (retval_exp));
set_return_value (return_value);
/* If interactive, print the frame that is now current. */