On Wednesday, 17 April 2013 at 11:14:52 UTC, Jacob Carlborg wrote:
On 2013-04-17 12:05, John Colvin wrote:
Martins reply in the bug report correctly identifies the
problem, it's a
bug in dmds implementation of the OS X IA32 ABI.
I see. I'm still wondering why it works on Mac OS X 10.6.3,
just luck?
clang just happened to put the arguments to foo in to registers
different on 10.6.3
Instead of loading the 0 argument in to eax it loaded the pointer
to the struct like it would in system V ABI (linux)
I have no idea whether this is a complete coincidence, or whether
clang has changed it's approach to the OS X abi, or whether the
ABI itself has changed.