This is the mail archive of the
mailing list for the GDB project.
Re: RFA: MI tests: tolerate prototypes
Daniel Jacobowitz <email@example.com> writes:
> > Ah, by building `prototype'-style types for all the functions, even
> > those declared without prototypes, and using the called-as types as
> > the prototype argument types. It'll work because, even though the
> > type claims to be prototyped, the argument types are such that we end
> > up doing the same promotions required by the rules for calling
> > non-prototyped functions.
> So, the question becomes - do we need MAYBE_PROTOTYPED? If we accept
> that the types marked in stabs as parameters are promoted types, then
> we can simply mark stabs functions as being prototyped, and trust
> TYPE_FLAG_PROTOTYPED more than we do.
If we do that, then:
- Dwarf 2 will continue to work correctly, since its prototype info
has always been accurate,
- under STABS, calls to functions whose definitions we have debug info
for will always work, unlike the current state of affairs, and
- under STABS, calls via function pointers will do non-prototyped
argument promotion, which is no worse than now.
Sounds good to me.
It does bother me, sort of on principle, that we won't really have
info about which functions were declared in which way. I mean,
prototypedness is a real property of function types in ISO C. But
given that our debug format doesn't carry the info we need, I guess
I'll just get over it. :)