software archaeology: fixing method calls
Michael Elizabeth Chastain
chastain@cygnus.com
Tue Apr 24 13:38:00 GMT 2001
Jim Blandy writes:
> - For TYPE_CODE_FUNC, the types of the arguments are stored in
> `fields', just as if they were members of a structure. This lets us
> store the names of the arguments.
>
> - However, for TYPE_CODE_METHOD, the types of the arguments are stored
> in `type_specific.arg_types'.
>
> Why is this?
I don't know why, but I saw this too -- this was my first CR a long
time ago. I traced it back to Michael Tiemann's original design.
It may come from a time before ordinary C functions had parameters.
> However, this means that invoking functions that expect reference
> arguments is impossible if you don't know the types of the arguments:
> you can't tell whether to pass boo's value (1), or boo's address
> (&boo).
Hmmm, if a function expects a reference argument, then it's written
in a language like C++ or Java where all functions are prototyped.
I guess the user would still lose if they compiled that source file
with no debugging information.
> - We could change the definition of TYPE_CODE_METHOD to put the
> arguments in the same place TYPE_CODE_FUNCTION does.
I prefer this too.
Michael
More information about the Gdb
mailing list