[Issue 670] _argptr is char *

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Sep 18 05:07:41 PDT 2007


http://d.puremagic.com/issues/show_bug.cgi?id=670





------- Comment #3 from smjg at iname.com  2007-09-18 07:07 -------
  (In reply to comment #2)
> According to the spec, only DMD exists. It doesn't mention portability.

Where is this bit of the spec that states that no other compiler exists?

> va_list is not a char* always, it's a "target-specific type". Don't cast.
> It needs the builtin va_list and the va_arg template for it to work...
std.stdarg, in DMD's implementation, defines va_list to be an alias of void*. 
This is consistent with
http://www.digitalmars.com/d/function.html
- "These variadic functions have a special local variable declared for them,
_argptr, which is a void* pointer to the first of the variadic arguments."
- the code example on that page using std.stdarg

> I'm not sure how it could be rewritten to support DMD's direct access ?
> But David can probably give a much better explanation of the va_lists.

What do you mean by this?


-- 



More information about the D.gnu mailing list