Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

reserve manglings containing a period for vendor-specific versions / pieces of functions? #35

Closed
zygoloid opened this issue Oct 1, 2017 · 1 comment · Fixed by #36
Closed

Comments

@zygoloid
Copy link
Contributor

zygoloid commented Oct 1, 2017

Several vendors use mangled names of the form

real_mangled_name.suffix

to represent either a version of a function (eg, parameter 3 is the constant x) or a piece of a function (eg, coroutine resumption slice of a function) or similar. However, demanglers are inconsistent in their handling of this form -- some require the suffix to contain only digits, others support and ignore an arbitrary suffix, others simply reject all such names as being an invalid mangling.

We should officially permit such manglings for internal-linkage symbols, with an arbitrary suffix, in order to give clear guidance to demangler implementers.

@rjmccall
Copy link
Collaborator

rjmccall commented Oct 1, 2017

Seems like a good idea.

zygoloid added a commit to zygoloid/cxx-abi that referenced this issue Oct 2, 2017
…f using a period-separated suffix for symbol variants.

The intent is to provide a mechanism whereby implementations can provide
multiple definitions of a symbol (eg, a constant-propagated version of a
function, the residual after partial inlining or dead argument
elimination, a resumption function for a coroutine, ...) that are named
after the original in backtraces, debuggers, and so on.

Fixes itanium-cxx-abi#35.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants