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
Comment #2 by dlang-bot — 2019-06-12T01:38:25Z
@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