www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 12370] New: Regression: C++ name mangling broke

reply d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=12370

           Summary: Regression: C++ name mangling broke
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: bugzilla digitalmars.com



23:48:21 PDT ---
---------- 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

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 14 2014
next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=12370


Vladimir Panteleev <thecybershadow gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thecybershadow gmail.com



08:59:15 EET ---
Introduced in https://github.com/D-Programming-Language/dmd/pull/3160

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 14 2014
prev sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=12370


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |yebblies gmail.com
         Resolution|                            |INVALID



The correct D declaration would be:

extern (C++) void foo8(const(char)*);

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 15 2014