First working Win64 program!
David Nadlinger
see at klickverbot.at
Wed Aug 15 06:05:06 PDT 2012
On Wednesday, 15 August 2012 at 11:15:35 UTC, Paulo Pinto wrote:
> Does this not required that the D and C compiler are in sync
> about data layout?
>
> Small sizes structs are often kept in registers.
Yes, extern(C) is intended to be fully ABI-compatible with the
respective C ABI on the host system. On *nix systems, this means
that the System V AMD64 ABI is followed for parameter passing.
The DMD implementation of it, however, still has bugs in the
cases mentioned above, as the register assignment scheme is
difficult to implement in Walter's backend. The current state
_is_ self-consistent, though, so the problems only surface when
interfacing with C code.
David
More information about the Digitalmars-d-announce
mailing list