Bug 17947 – C++ std::pair::swap mangled incorrectly

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
Linux
Creation time
2017-10-29T08:01:46Z
Last change time
2017-12-18T22:56:11Z
Keywords
C++, mangling
Assigned to
No Owner
Creator
Walter Bright

Comments

Comment #0 by bugzilla — 2017-10-29T08:01:46Z
This assert fails: extern (C++, std) { struct pair(T1, T2) { void swap(ref pair other); } } version (linux) { static assert(std.pair!(void*, void*).swap.mangleof == "_ZNSt4pairIPvS0_E4swapERS1_"); } because it is incorrectly mangled as: "_ZNSt4pairIPvS1_E4swapERStS0_IS1_S1_E"
Comment #1 by bugzilla — 2017-10-29T08:02:23Z
Comment #2 by github-bugzilla — 2017-10-29T12:14:37Z
Commit pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/e2f87ce487985ab12ca4303f4ef1c50cd02f4e70 Merge pull request #7250 from WalterBright/cpp-mangling fix Issue 17947 - C++ std::pair::swap mangled incorrectly
Comment #3 by github-bugzilla — 2017-12-18T22:56:11Z
Commit pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/e2f87ce487985ab12ca4303f4ef1c50cd02f4e70 Merge pull request #7250 from WalterBright/cpp-mangling