On Thu, Oct 25, 2007 at 08:44:26AM -0700, Joe Buck wrote:
> One of the purposes of the C++ ABI is to allow different compilers to
> interoperate.  The freedom you describe would prevent gcc-compiled
> code from behaving correctly with icc-compiled code, for example.
> So yes, argument passing conventions are part of the ABI.

You're using the term "ABI" too broadly - more than one applies.  The
C++ ABI only covers C++ specific additions on top of existing
platform-specific ABIs.  It's not a question of freedom.

In any case, it seems that I was wrong.  Non-PODs still get passed in
registers if the layout-equivalent POD would, unless there is a
non-trivial copy constructor or destructor; there are non-PODs without
those.  Sorry for the confusion.

-- 
Daniel Jacobowitz
CodeSourcery

Reply via email to