[cxx-abi-dev] Mangling issue

Mark Mitchell wrote:
>> I have been presented with a corner case for which I do not believe
> we have specified a mangling.
>> Consider:
>> template <unsigned int> struct helper {};
> template <class T>
> void check( helper<sizeof(new T)> * );
Ah yes... this is currently a popular Usenet C++ topic.
> The interesting point here is the "new T", which could, of course,
> in general be "new(0) T(3)", or some such. Our expression mangling
> scheme does not say what to do here in the sense that it assumes
> that each operator has fixed arity. However, due to the existence
> of placement new, new does not. This also raises the issue of things
> like:
>> helper<sizeof(f(T(0)))>
>> and so forth; there's apparently so restriction on the standard in
> having arbitrarily complex gnnk inside the "sizeof".
>> Thoughts?
Perhaps these should really be mangled with the "cl" operator:
X cl <function-name> <expr>* E
where <function-name> could be a mangled operator new if necessary?
Daveed