>From: "Nelson, Clark" <[email protected]>
>> since GCC 3.2, but a customer recently asked us to allow it, and it
>> occurs to me that the obvious way around the problems with bitwise
>> copying is to implement this as pass-by-invisible-reference, just like
>> normal value argument passing.  Any objections?

Did the customer say how he was going to accept it on the callee side?
If by invisible-reference, the user must cheat and treat as a pointer,
then create the reference.

So, if you want reference, the user can instead pass as a pointer.

aCC6 allows it with a warning but the results are unpredictable:
warning #3290-D:  Passing a non-POD object to a function with variable
arguments has undefined behavior.  Object will be copied onto
the stack instead of using a constructor.

(This is a bitwise copy.)

This warning can be made an error by the user.

>The obvious next question is, exactly how would the implementation of
>va_arg work for non-trivial types?  Would new magic be required?  Or
>would the already-existing flavors of magic be enough?
Clark

I assume there is "magic" that assumes it is a POD?
_______________________________________________
cxx-abi-dev mailing list
[email protected]
http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev

Reply via email to