This is the mail archive of the
mailing list for the GCC project.
Re: C++ ABI: name mangling of operator new [bug 6057]
On 7/26/07, Richard Smith <firstname.lastname@example.org> wrote:
Doug Gregor wrote:
> This kind of thing came up that the last C++ committee meeting, as
> part of core issue 339:
> Name mangling is part of the problem, but not all of it. There is also
> the issue of what happens when there is an error in the expression
> "new T": is it part of the Substitution Failure Is Not An Error
> (SFINAE) rule, meaning that the function would not enter the overload
> set, or does it trigger an error immediately? That's actually the more
> complicated issue.
Thanks for pointing DR 339 out to me; whilst I had read it
before, it was before the note from the Apr 2007 meeting was
Although the 'compromise proposal' appears to avoid all of
these problems by making my example illegal, it would appear
that N2235 'Generalized Constant Expressions' reintroduces
many of them again. To give an example,
I'm sorry, I should have read that DR text more carefully before
pointing. We discussed DR 339 again last week in Toronto, and the
resolution was different from the April 2007 resolution.
Now, we're saying that any expressions are valid in sizeof, decltype,
and constant expressions. If those expressions fail to type-check
during substitution, it will be a SFINAE case. That's why we need both
name mangling additions to the ABI and more work to obey
tsubst_flags_t throughout a much larger part of the compiler.