RFC: PATCH to allow passing non-trivial types through ...

Nathan Sidwell nathan@codesourcery.com
Tue Aug 12 05:23:00 GMT 2014


On 08/11/14 14:02, Jason Merrill wrote:
> A customer was recently complaining about G++ rejecting code that tries to pass
> a type with a non-trivial copy constructor through ..., which is undefined in
> C++98 and conditionally-supported in C++11.  In GCC 3.1 and below we gave a
> warning and then did a bitwise copy.  From GCC 3.2 to 4.4 we gave a warning and
> then aborted at runtime.  From 4.5 on we have just given an error.
>
> On considering the request, it occurred to me that we could handle variadic
> arguments of non-trivial types the same way we handle normal value arguments of
> such types: pass by invisible reference.  So this patch implements that.  Since
> it's been so long since this was allowed at all, I don't think we need to worry
> about ABI incompatibility with the 3.1 behavior.
>
> Thoughts?

Sounds sensible to me.

nathan
-- 
Nathan Sidwell



More information about the Gcc-patches mailing list