llvm 3.6 and x86 (32-bit) varargs bad stack adjust

Dan Olson via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Tue Jul 14 23:32:32 PDT 2015


"Kai Nacke" <kai at redstar.de> writes:

> On Monday, 13 July 2015 at 17:04:55 UTC, Dan Olson wrote:
>> "Kai Nacke" <kai at redstar.de> writes:
>>>
>>> There is no ldc issue yet. Did you check with LLVM 3.7? If we can
>>> produce a LLVM bug report then we could try to set this as a
>>> release blocker. Branching for the 3.7 release is tomorrow.
>>
>> No, I have not tried 3.7 and I won't have time for a couple days.
>>
>> I don't understand the history of why LDC uses X86_StdCall for
>> Posix. It says in LLVM docs that it is mostly used by Win32.
>> Perhaps it is not well tested outside Windows.  I don't think this
>> new Issue is a problem on Windows.
>
> stdcall conventions does not support variadic arguments. Or am I
> wrong?
>
> Regards,
> Kai

Yeah, I read that too.  That is why I was curious about the history of
using X86_StdCall.  Didn't D-style variadics changed in 0.15.2 from a
pointer to varags to a true variadic call.  Could that be related?  I
decided to start looks at diffs in LLVM source from 3.5 to 3.6 to see
what might have happened there too.  Maybe LDC is just using X86_StdCall
in a "non-Std" way.


More information about the digitalmars-d-ldc mailing list