Summary: Incorrect C++ name mangling
           Product: D
           Version: 2.041
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD

--- Comment #0 from Robert Clipsham <> 2010-04-03 
22:08:14 BST ---
struct elem { };
void foobar(elem*, elem*) {}
struct elem { }
extern(C++)void foobar(elem*, elem*);
void main(){
        elem *a;
        foobar(a, a);
Compile with:
$ gcc -c b.cpp -ob.o
$ dmd a.d b.o
This gives linking errors, as dmd does not mangle foobar properly. According to
nm, the correct mangle (found in b.cpp) is:
But dmd mangles it as:

Again, this is a blocker for ddmd on linux.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to