Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org, cltang@codesourcery.com
Subject: Re: [PATCH 1/4] New gdb arch hook: return_with_first_hidden_param_p
Date: Thu, 03 May 2012 01:15:00 -0000	[thread overview]
Message-ID: <20120503011435.GA3294@adacore.com> (raw)
In-Reply-To: <1334755073-26528-1-git-send-email-yao@codesourcery.com>

> C++ ABI is intended to be cross-architecture, but C++ ABI ends up being
> target-dependent at some points.  In practice, GDB has to know which
> architecture is special.
> 
> As I said above, GCC changes a language-dependent rule to a
> target-dependent rule 'by mistake', so GDB has to be aware of this.  That
> is the motivation to create this new gdbarch hook.  If the hook is not
> installed, the default version still complies to existing GDB's behavior,
> nothing is changed.

I am of two minds about this. If this is a GCC error, then we should
also think of the error being fixed in GCC - at least at some point.
So, anything we end up doing here should be regarded as a workaround,
and I wouldn't want the workaround to start causing problems the day
the problem is fixed in GCC.

We have the same sort of issue in Ada, where functions returning
types whose size is non-static are transformed into procedures
where the first parameter is the return value. I haven't had the time
to look into this - in particular whether this feature is target-
dependent or not. I think we can get away with it by simply inspecting
the funtion's parameter name (which is not great).

It'd be good if you could show us the debugging information generated
for functions that return values vial the first parameter. Ideally,
there should be some information about this in the functions debug
info. I think that this would be the best way forward - that way,
GDB wouldn't have to juggle a number of factors in order to guess
which convention to use.

In terms of implementation, I think it would be better if we passed
the function's symbol as a parameter to the new gdbarch method, rather
than the return time.  With the symbol, we can determine the language,
which might be a useful thing to have when determining how the result
is returned.

Just a nit, I would name the new method "return_in_hidden_first_param_p"
(although, I think we have more general issues to discuss before we
can really talk about the code).


-- 
Joel


  parent reply	other threads:[~2012-05-03  1:15 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-18 13:28 Yao Qi
2012-04-18 13:18 ` [PATCH 2/4] tic6x: Install return_with_first_hidden_param_p Yao Qi
2012-05-16 20:59   ` Tom Tromey
2012-04-18 13:18 ` [PATCH 4/4] m68k: " Yao Qi
2012-05-16 21:01   ` Tom Tromey
2012-04-18 13:18 ` [PATCH 3/4] sh: " Yao Qi
2012-05-16 21:00   ` Tom Tromey
2012-04-25 11:02 ` [PATCH 1/4] New gdb arch hook: return_with_first_hidden_param_p Yao Qi
2012-05-03  0:43 ` [ping 2] : " Yao Qi
2012-05-03  1:15 ` Joel Brobecker [this message]
2012-05-03  7:00   ` Yao Qi
2012-05-04 17:58     ` Joel Brobecker
2012-05-07  3:39       ` Yao Qi
2012-05-07 20:14         ` Joel Brobecker
2012-05-09  8:39           ` Yao Qi
2012-05-10 21:21             ` Joel Brobecker
2012-05-11 10:35               ` Yao Qi
2012-05-14 17:15                 ` Joel Brobecker
2012-05-15  6:51                   ` Yao Qi
2012-05-15 15:01                     ` Joel Brobecker
2012-05-16  1:37                       ` Yao Qi
2012-05-16 15:31                         ` Joel Brobecker
2012-05-16 21:03                           ` Tom Tromey
2012-05-15 18:03                     ` Mark Kettenis
2012-05-16  1:55                       ` Yao Qi
2012-05-17 21:02                         ` Mark Kettenis
2012-07-06 13:17                       ` Gary Benson
2012-05-15 15:35               ` Thomas Schwinge
2012-05-15 21:30                 ` Joel Brobecker
2012-05-03 14:04   ` Chung-Lin Tang
2012-05-16 20:56 ` Tom Tromey
2012-05-16 23:03   ` Mark Kettenis
2012-06-08 14:30     ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120503011435.GA3294@adacore.com \
    --to=brobecker@adacore.com \
    --cc=cltang@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox