Comment #0 by bus_dbugzilla — 2011-11-21T08:45:25Z
Works on 32-bit, fails on 64-bit linux:
import core.vararg;
void foo(...)
{
string str = *(cast(string*)_argptr);
assert(str.length == 0);
}
void main()
{
foo("");
}
This might be the same as issue 6758, but I'm not certain.
This may be the root cause of issue 6047 and issue 6576.
Comment #1 by bugzilla — 2012-04-28T02:11:11Z
The 64 bit ABI won't allow using _argptr directly. Instead, use the functions in core.stdc.stdarg.
Comment #2 by clugdbug — 2012-04-29T00:12:05Z
(In reply to comment #1)
> The 64 bit ABI won't allow using _argptr directly. Instead, use the functions
> in core.stdc.stdarg.
The real bug is bug 7893: the spec says you *can* use _argptr in this way.