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.

--

Reply via email to