https://issues.dlang.org/show_bug.cgi?id=16536
Walter Bright <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Walter Bright <[email protected]> --- Note the following from cdef.h: #if defined(__UINT64_TYPE__) typedef __INT64_TYPE__ targ_llong; typedef __UINT64_TYPE__ targ_ullong; #elif defined(__UINTMAX_TYPE__) typedef __INTMAX_TYPE__ targ_llong; typedef __UINTMAX_TYPE__ targ_ullong; #else typedef long long targ_llong; typedef unsigned long long targ_ullong; #endif Which of these is the C++ compiler on your machine doing? Is there another macro it should be doing? Getting this right is necessary for the name mangling to match what D generates for 'long' and 'ulong'. The way to determine the pertinent macro is to have your C++ compiler dump all its predefined macros, once for -m32 and once for -m64. Diff the two, and find the relevant macro. --
