summaryrefslogtreecommitdiff
path: root/src/stdarg/va_arg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stdarg/va_arg.c')
-rw-r--r--src/stdarg/va_arg.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/stdarg/va_arg.c b/src/stdarg/va_arg.c
new file mode 100644
index 00000000..37353882
--- /dev/null
+++ b/src/stdarg/va_arg.c
@@ -0,0 +1,22 @@
+#include <stdarg.h>
+#define va_arg(ap, type) __builtin_va_arg(ap, type)
+
+/** get an unnamed parameter **/
+
+/***
+retrieves the next unnamed parameter for use. The
+ARGUMENT(ap) parameter must be first initialized with a call to FUNCTION(va_start).
+Each successive call to FUNCTION(va_arg) evaluates the next argument as an
+object of type ARGUMENT(type) and returns that value, modifying ARGUMENT(ap) for use in
+the next call to FUNCTION(va_arg).
+***/
+
+/*
+PROTOTYPE(TYPE(VAR(type)) va_arg(va_list ap, TYPE(VAR(type)));)
+UNDEFINED(There is no next argument)
+UNDEFINED(The next argument is not compatible with TYPE(ARGUMENT(type)))
+RETURN_SUCCESS(an object of TYPE(ARGUMENT(type)) which is the next unnamed function parameter)
+*/
+/*
+STDC(1)
+*/