Fix c++ ABI failures
Mark Mitchell
mark@codesourcery.com
Tue Apr 30 15:25:00 GMT 2002
> Still, the question is how should be classes with non-trivial
> constructors or destructors passes on sparc64, ia64 and other ABIs which
> pass records in registers.
The IA64 C++ ABI is very clear about this. It says, essentially:
If you have a non-trivial copy constructor or destructor, you pass in
memory.
Otherwise, you do whatever you would have done in C for an equivalent
structure.
That seems to make sense to me -- independent of the architecture. Are
you disagreeing?
Note that this is also what G++ has always done -- except that on some
architectures G++ passed in memory even in cases where C would have
passed in registers. (That's what David and I just fixed.)
The change just makes C++ more like C.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
More information about the Gcc-patches
mailing list