[PATCH] m32c-tdep.c: Don't choke on virtual functions in push_dummy_call
Daniel Jacobowitz
drow@false.org
Wed Jun 28 21:32:00 GMT 2006
On Wed, Jun 28, 2006 at 04:18:39PM +0200, Corinna Vinschen wrote:
> Hi,
>
> the below patch fixes a couple of GDB internal errors when calling
> virtual C++ methods. Virtual methods are not represented as type
> TYPE_CODE_METHOD, but as TYPE_CODE_PTR pointing to TYPE_CODE_METHOD.
> The m32c_push_dummy_call function only checks the function type for
> TYPE_CODE_FUNC or TYPE_CODE_METHOD, which results in a failed assertion
> in case of virtual methods. The below patch skips TYPE_CODE_PTR types
> until it points to the actual TYPE_CODE_METHOD to evaluate further
> necessary data.
>
> Ok to apply?
In addition to Mark's question, which I am also curious about - did
anything in the testsuite catch this, or if not, how can we reproduce
it? - I am currently (i.e. right this moment) rewriting lots of this
stuff. You may wish to wait a little while - though be sure to poke me
about it if I don't have something to check in soon! It is all broken
anyway; GDB is not going to succeed at calling a virtual pointer, it's
going to go off into neverland.
--
Daniel Jacobowitz
CodeSourcery
More information about the Gdb-patches
mailing list