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