[Issue 10058] Inconsistent mangling between C++ and extern(C++).

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 10 09:02:09 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10058


Iain Buclaw <ibuclaw at ubuntu.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw at ubuntu.com


--- Comment #1 from Iain Buclaw <ibuclaw at ubuntu.com> 2013-05-10 09:02:08 PDT ---
A better example:

test.cc:
void foo1(void* (*)(void*)) {}
void foo2(void* (*)(void*), void*) {}
void foo3(void* (*)(void*), void* (*)(void*)) {}
void foo4(void* (*)(void*), void*, void*) {}
void foo5(void* (*)(void*), void* (*)(void*), void*) {}
void foo6(void* (*)(void*), void* (*)(void*), void* (*)(void*)) {}

test.d:
extern(C++) void foo1(void* function(void*)) {}
extern(C++) void foo2(void* function(void*), void*) {}
extern(C++) void foo3(void* function(void*), void* function(void*)) {}
extern(C++) void foo4(void* function(void*), void*, void*) {}
extern(C++) void foo5(void* function(void*), void* function(void*), void*) {}
extern(C++) void foo6(void* function(void*), void* function(void*), void*
function(void*)) {}


testcc.o
---
_Z4foo1PFPvS_E
_Z4foo2PFPvS_ES_
_Z4foo3PFPvS_ES1_
_Z4foo4PFPvS_ES_S_
_Z4foo5PFPvS_ES1_S_
_Z4foo6PFPvS_ES1_S1_


testd.o
---
_Z4foo1PFPvS0_E
_Z4foo2PFPvS0_ES0_
_Z4foo3PFPvS0_ES1_
_Z4foo4PFPvS0_ES0_S0_
_Z4foo5PFPvS0_ES1_S0_
_Z4foo6PFPvS0_ES1_S1_

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


More information about the Digitalmars-d-bugs mailing list