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

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jan 1 20:35:42 PST 2008


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 at digitalmars.com
        ReportedBy: torhu at 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 at Z
In D:   ?dfunc@@YAXPAX at 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.


-- 



More information about the Digitalmars-d-bugs mailing list