Re: [PATCH 1/4] New gdb arch hook: return_with_first_hidden_param_p

Mark Kettenis
2012-05-15T18:03:11Z

> Date: Tue, 15 May 2012 14:50:58 +0800
> From: Yao Qi <yao@codesourcery.com>
>
> On 05/15/2012 01:14 AM, Joel Brobecker wrote:
> >>> > > Can we use the fact that functions that have their first parameter
> >>> > > be a nameless, artificial, paramter whose type is a pointer to
> >>> > > the return type? Or would this heuristics trigger in other situations?
> >> >
> >> > Yeah, I thought of that heuristics, but it still can't differentiate
> >> > passing 3 or 4 parameters.
> > So, you are saying that we have functions who have an extra hidden
> > parameter used for something other than the function's return value?
> >
>
> No, the extra hidden parameter's type is the reference of the function's
> return type. My point is if we only examine debug info, we don't know
> whether hidden parameter is passed, because the debug info is the same
> regardless of hidden parameter is passed or not.

I'm still very confused. This "hidden parameter" thing sounds exactly
like "struct_return". So are you saying that on some architectures
gdbarch_return_value() return RETUN_VALUE_REGISTER_CONVENTION when if
fact for C++ (and not for plain C) it should return
RETURN_VALUE_STRUCT_CONVENTION?