Bug 19248 – Wrong mangle for C++ const STL classes/structs

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
Linux
Creation time
2018-09-15T09:23:48Z
Last change time
2018-09-16T11:58:46Z
Keywords
C++
Assigned to
No Owner
Creator
Илья Ярошенко

Comments

Comment #0 by ilyayaroshenko — 2018-09-15T09:23:48Z
================ C++ namespace std { class vector { }; } void bar(std::vector& a) { } void foo(const std::vector& a) { } ---------------- _Z3barRSt6vector: rep ret _Z3fooRKSt6vector: rep ret ================ D extern(C++, std) { extern(C++, class) struct vector { } } extern(C++): void bar(ref std.vector) { } void foo(ref const std.vector) { } ---------------- _Z3barRSt6vector: // OK ret _Z3fooRKNSt6vectorE: // Wrong STD shortcuts ret
Comment #1 by ilyayaroshenko — 2018-09-15T10:08:45Z
Comment #2 by ilyayaroshenko — 2018-09-15T10:45:14Z
Comment #3 by github-bugzilla — 2018-09-16T11:58:45Z
Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/9cb46f842778b3b7d3cb4efe698c32765fd72220 fix Issue 19248 https://github.com/dlang/dmd/commit/2db16adbced9e7736802c3d4fbaa0ca6c79f8dc5 Merge pull request #8700 from 9il/issue19248 [~regression fix] fix Issue 19248 and reopened 18957 merged-on-behalf-of: David Nadlinger <[email protected]>