Bug 12370 – Regression: C++ name mangling broke

Status
RESOLVED
Resolution
INVALID
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2014-03-14T23:48:00Z
Last change time
2014-03-15T00:04:32Z
Assigned to
nobody
Creator
bugzilla

Comments

Comment #0 by bugzilla — 2014-03-14T23:48:21Z
---------- D ---------- extern (C++) void foo8(const char *); void main() { char c; foo8(&c); } ------------ C++ --------------- void foo8(const char *p) { } --------------------------------- This works in 2.065. In 2.066, C:\mars>dmc -c foo6b C:\mars>dmd foo6a foo6b.obj OPTLINK (R) for Win32 Release 8.00.14 Copyright (C) Digital Mars 1989-2013 All rights reserved. http://www.digitalmars.com/ctg/optlink.html foo6a.obj(foo6a) Error 42: Symbol Undefined ?foo8@@YAXQBD@Z (void cdecl foo8(char const *const )) --- errorlevel 1
Comment #1 by dlang-bugzilla — 2014-03-14T23:59:15Z
Comment #2 by yebblies — 2014-03-15T00:04:32Z
The correct D declaration would be: extern (C++) void foo8(const(char)*);