[cxx-abi-dev] Passing non-trivial types through ...

Dennis Handly dhandly at cup.hp.com
Thu Aug 21 08:01:28 UTC 2014


>From: John McCall <rjmccall at apple.com>
>To me, it sounds like aCC warning about the metaprogramming
>use case, you got a bug about it, and you fixed it, but that you never
>intended to support actually doing this at runtime.

I don't think so.  ;-)

It was supported with that test case back in 1996 but with the scary form
of the warning.  Supported in that the test did exactly what the warnings
said.

I assume this functionality came from cfront or was built into the Taligent
compiler.

(I'm not sure how this was ported to the EDG compiler if we didn't have
a functional test for it?  Or it's too hard to find.  :-)

The test case that had the warning had nothing to do with it (since
a decade later) but with placement delete.

>But its your decision, or I should say HPs.  If you feel comfortable
>saying that you do not currently support passing non-POD types through
>varargs, and that you consider it undefined behavior,

Undefined by the Standard but implemented with HP's definition of a bitwise
copy.

>then I think the best thing for the ABI is to say that vendors who
>choose to support non-POD varargs must follow Jason's proposal.

>Otherwise, we’ll have to be much more weaselly about it. :)
John.

I don't have any objections but Soumitra might.

It would be nice to point to HP's aC++ and mention another way of doing it
but it's not ideal.  :-)


More information about the cxx-abi-dev mailing list