Re: [patch] Fix `return' of long/long-long results with no debuginfo

Joel Brobecker
2009-03-11T16:30:40Z

> 2009-03-09 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * stack.c (return_command <retval_exp>): New variables retval_expr
> and old_chain. Inline parse_and_eval to initialize retval_expr. Check
> RETVAL_EXPR for UNOP_CAST and set RETURN_TYPE to the RETURN_VALUE type
> if RETURN_TYPE is NULL.

This looks good to me, but I don't understand the error message when
the user forgot to cast the result. I wonder if we shouldn't just
preserve the old behavior which is to implicitly cast to "int"?

> > if (return_type == NULL)
> > - return_type = builtin_type (get_frame_arch (thisframe))->builtin_int;
> > + {
> > + if (retval_expr->elts[0].opcode != UNOP_CAST)
> > + error (_("Selected stack frame (with no associated function) "
> > + "requires an explicit cast of the value to return"));
> > + return_type = value_type (return_value);
> > + }

--
Joel