- Update a few places to account for va_copy().
- Create a separate 'return values' section and move some statements about return values to that section. - Note that each invocation of va_start() and va_copy() must be paired with va_end() in the same function. MFC after: 1 week
This commit is contained in:
parent
96c3037416
commit
484e5bdd2b
@ -59,7 +59,7 @@ The include file
|
|||||||
.In stdarg.h
|
.In stdarg.h
|
||||||
declares a type
|
declares a type
|
||||||
.Pq Em va_list
|
.Pq Em va_list
|
||||||
and defines three macros for stepping
|
and defines four macros for stepping
|
||||||
through a list of arguments whose number and types are not known to
|
through a list of arguments whose number and types are not known to
|
||||||
the called function.
|
the called function.
|
||||||
.Pp
|
.Pp
|
||||||
@ -77,7 +77,8 @@ The
|
|||||||
macro initializes
|
macro initializes
|
||||||
.Fa ap
|
.Fa ap
|
||||||
for subsequent use by
|
for subsequent use by
|
||||||
.Fn va_arg
|
.Fn va_arg ,
|
||||||
|
.Fn va_copy ,
|
||||||
and
|
and
|
||||||
.Fn va_end ,
|
.Fn va_end ,
|
||||||
and must be called first.
|
and must be called first.
|
||||||
@ -93,10 +94,6 @@ macro, it should not be declared as a register variable, or as a
|
|||||||
function or an array type.
|
function or an array type.
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
.Fn va_start
|
|
||||||
macro returns no value.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fn va_arg
|
.Fn va_arg
|
||||||
macro expands to an expression that has the type and value of the next
|
macro expands to an expression that has the type and value of the next
|
||||||
argument in the call.
|
argument in the call.
|
||||||
@ -105,7 +102,9 @@ The parameter
|
|||||||
is the
|
is the
|
||||||
.Em va_list Fa ap
|
.Em va_list Fa ap
|
||||||
initialized by
|
initialized by
|
||||||
.Fn va_start .
|
.Fn va_start
|
||||||
|
or
|
||||||
|
.Fn va_copy .
|
||||||
Each call to
|
Each call to
|
||||||
.Fn va_arg
|
.Fn va_arg
|
||||||
modifies
|
modifies
|
||||||
@ -152,18 +151,28 @@ the same number of times as called with
|
|||||||
.Fa src .
|
.Fa src .
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
|
.Fn va_end
|
||||||
|
macro cleans up any state associated with the variable argument list
|
||||||
|
.Fa ap .
|
||||||
|
.Pp
|
||||||
|
Each invocation of
|
||||||
|
.Fn va_start
|
||||||
|
or
|
||||||
.Fn va_copy
|
.Fn va_copy
|
||||||
macro returns no value.
|
must be paired with a corresponding invocation of
|
||||||
|
.Fn va_end
|
||||||
|
in the same function.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
The
|
||||||
|
.Fn va_arg
|
||||||
|
macro returns the value of the next argument.
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
|
.Fn va_start ,
|
||||||
|
.Fn va_copy ,
|
||||||
|
and
|
||||||
.Fn va_end
|
.Fn va_end
|
||||||
macro handles a normal return from the function whose variable argument
|
macros return no value.
|
||||||
list was initialized by
|
|
||||||
.Fn va_start .
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fn va_end
|
|
||||||
macro returns no value.
|
|
||||||
.Sh EXAMPLES
|
.Sh EXAMPLES
|
||||||
The function
|
The function
|
||||||
.Em foo
|
.Em foo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user