aboutsummaryrefslogtreecommitdiff
path: root/gdb/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/stack.c')
-rw-r--r--gdb/stack.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gdb/stack.c b/gdb/stack.c
index 61c799d..1725dc6 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1780,11 +1780,13 @@ down_command (char *count_exp, int from_tty)
void
return_command (char *retval_exp, int from_tty)
{
+ struct frame_info *thisframe;
struct symbol *thisfun;
struct value *return_value = NULL;
const char *query_prefix = "";
- thisfun = get_frame_function (get_selected_frame ("No selected frame."));
+ thisframe = get_selected_frame ("No selected frame.");
+ thisfun = get_frame_function (thisframe);
/* Compute the return value. If the computation triggers an error,
let it bail. If the return type can't be handled, set
@@ -1803,7 +1805,7 @@ return_command (char *retval_exp, int from_tty)
if (thisfun != NULL)
return_type = TYPE_TARGET_TYPE (SYMBOL_TYPE (thisfun));
if (return_type == NULL)
- return_type = builtin_type_int;
+ return_type = builtin_type (get_frame_arch (thisframe))->builtin_int;
CHECK_TYPEDEF (return_type);
return_value = value_cast (return_type, return_value);