[cxx-abi-dev] Name mangling for explicit overriders

Daveed Vandevoorde daveed at vandevoorde.com
Mon Jul 28 16:58:27 UTC 2003


On Sunday, July 27, 2003, at 02:24  PM, Mark Mitchell wrote:
[...]
> I've suggested before that we should have a portion of the mangling
> namespace (i.e., the names that begin with "_Z") reserved for vendor
> extensions.
>
> I'm not 100% sure that the following scheme will not conflict with
> anything else, but it will serve as an illustration:
>
>   _Z v <length number> <vendor identifier> ...
>
> The idea is that all EDG-specific manglings would begin with:
>
>   _Zv3EDG
>
> The characters that follow that point would be entirely up to you.
>
> That would keep the manglings that you add from getting in the way of
> any future extensions of the base standard.  In other words, if some 
> new
> feature C++ 2017 caused us to add a mangling, we wouldn't have to
> remember that EDG is already using this bit with the "O" in the middle
> of it for this Microsoft thing.
>
> What do you think of this idea?  What do other people think?

I think the idea has merit for constructs that are truly
expected to be vendor-specific (i.e., proprietary).  However,
I see the selective overriding as something closer to the
"restrict" support in the current ABI: Not quite standard, but
we expect that vendors who will implement it will agree on
the meaning.

Note that this is in fact not an "EDG extension": It is a
Microsoft extension implemented in the EDG compiler.

Also, this extension is going to be proposed to the evolution
working group for inclusion in the next standard (including
the ability to rename the overrider).  It would be quite
unfortunate for the ABI-standard mangling to contain a "v3EDG",
I think ;-)

         Daveed




More information about the cxx-abi-dev mailing list