Bug 19949 – C++ Mangling: no support for abi-tags from the Itanium ABI
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
Linux
Creation time
2019-06-08T16:24:26Z
Last change time
2020-03-28T02:48:46Z
Keywords
C++, mangling, pull
Assigned to
Suleyman Sahmi (سليمان السهمي)
Creator
Suleyman Sahmi (سليمان السهمي)
Comments
Comment #0 by sahmi.soulaimane — 2019-06-08T16:24:26Z
The Itanium ABI defines a C++ attribute called `abi_tag` which is used for ABI versionning. For example std::string on linux uses it.
DMD doens't support this attribute yet which makes the C++ interface less capable.
Specification: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangle.abi-tag
example:
---
#include <string>
std::string toString(char* s)
{
return s;
}
---
On Linux it mangles to _Z8toStringB5cxx11Pc, B5xcc11 is the abi_tag.
Related to issue #14956.
Comment #1 by sahmi.soulaimane — 2019-06-08T22:13:44Z
@SSoulaimane created dlang/druntime pull request #2639 "issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI" mentioning this issue:
- issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI
https://github.com/dlang/druntime/pull/2639
Comment #3 by dlang-bot — 2019-06-12T01:57:00Z
@SSoulaimane updated dlang/dmd pull request #9995 "Fix issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI" fixing this issue:
- Fix issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI
https://github.com/dlang/dmd/pull/9995
Comment #4 by dlang-bot — 2020-03-15T23:20:37Z
@Geod24 created dlang/druntime pull request #2990 "Add compiler-recognized UDA for Itanium ABI's abi-tags" mentioning this issue:
- Add compiler-recognized UDA for Itanium ABI's abi-tags
This is part of issue 19949.
https://github.com/dlang/druntime/pull/2990
Comment #5 by dlang-bot — 2020-03-15T23:22:33Z
@Geod24 created dlang/dmd pull request #10927 "Fix issue 19949: Implement support for C++ ABI tags" fixing this issue:
- Fix issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI
Implements C++ ABI tags with a few more restruction than the previous PR (9995).
In particular, do not follow C++ source-level conventions when impractical
(e.g. propagation). Since this is a feature that will be seldom used by users,
I favored implementation simplicity over user-friendly semantics.
Co-Authored-By: سليمان السهمي (Suleyman Sahmi) <[email protected]>
https://github.com/dlang/dmd/pull/10927
Comment #6 by dlang-bot — 2020-03-16T00:58:35Z
dlang/druntime pull request #2990 "Add compiler-recognized UDA for Itanium ABI's abi-tags" was merged into master:
- bf85f57bcf87af7aa5190376e7c520a59797dd35 by سليمان السهمي (Suleyman Sahmi):
Add compiler-recognized UDA for Itanium ABI's abi-tags
This is part of issue 19949.
https://github.com/dlang/druntime/pull/2990
Comment #7 by dlang-bot — 2020-03-28T02:48:46Z
dlang/dmd pull request #10927 "Fix issue 19949: Implement support for C++ ABI tags" was merged into master:
- 45bc42393d5b8acdd4f940b961aee4614139a09f by Geod24:
Fix issue 19949 - C++ Mangling: add support for abi-tags from the Itanium ABI
Implements C++ ABI tags with a few more restriction than the previous PR (9995).
In particular, do not follow C++ source-level conventions when impractical
(e.g. propagation). Since this is a feature that will be seldom used by users,
I favored implementation simplicity over user-friendly semantics.
Co-Authored-By: سليمان السهمي (Suleyman Sahmi) <[email protected]>
https://github.com/dlang/dmd/pull/10927