Re: var args in kernel?

From: Jan Engelhardt
Date: Mon Nov 22 2004 - 06:17:41 EST


>> What you can't do is e.g.
>> va_list ap;
>> va_start (ap, x);
>> bar (x, ap);
>> bar (x, ap);
>> va_end (ap);

In theory, you can't. But the way how GCC (and probably other compilers)
implement it, you can. Because "ap" is just a pointer (which fits into a
register, if I may add). As such, you can copy it, pass it multiple times, use
it multiple times, and whatever you like.

At least that's IIRC the way TCPP recommends you in their helpfile
(va_list src; ... va_list dest = src)



Jan Engelhardt
--
Gesellschaft fÃr Wissenschaftliche Datenverarbeitung
Am Fassberg, 37077 GÃttingen, www.gwdg.de
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/