summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/va-arg-20.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-20.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
new file mode 100644
index 000000000..2e8e5640d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
@@ -0,0 +1,22 @@
+#include <stdarg.h>
+
+void foo(va_list v)
+{
+ unsigned long long x = va_arg (v, unsigned long long);
+ if (x != 16LL)
+ abort();
+}
+
+void bar(char c, char d, ...)
+{
+ va_list v;
+ va_start(v, d);
+ foo(v);
+ va_end(v);
+}
+
+int main(void)
+{
+ bar(0, 0, 16LL);
+ exit(0);
+}