www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1762] New: Wrong name mangling for pointer args of free extern (C++) functions

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

           Summary: Wrong name mangling for pointer args of free extern
                    (C++) functions
           Product: D
           Version: 2.008
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: link-failure
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: torhu yahoo.com


In C++:
void dfunc(char*);

In D:
extern (C++) void dfunc(char* s)
{
        puts(s);
}

dfunc is mangled as follows:
In C++: ?dfunc  YAXPAD Z
In D:   ?dfunc  YAXPAX Z

I also tried this with an int pointer, which didn't work either.  Verified in
both 2.008 and 2.009.

The name mangling seems to be correct for methods.


-- 
Jan 01 2008
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1762


torhu yahoo.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED





Fixed DMD 2.010.


-- 
Feb 07 2008