diff options
author | Araq <rumpf_a@web.de> | 2014-11-12 00:04:04 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-11-12 00:04:04 +0100 |
commit | 2d43fcafe0cedd4f78611dddccc31e1bef432aab (patch) | |
tree | 6703ed013d306dfe8417a3380ad2d997783c2073 /tests/ccgbugs | |
parent | aae180e26b7392da5050048a7528d7ef3b25986f (diff) | |
download | Nim-2d43fcafe0cedd4f78611dddccc31e1bef432aab.tar.gz |
fixes #1593
Diffstat (limited to 'tests/ccgbugs')
-rw-r--r-- | tests/ccgbugs/tcvarargs.nim | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/ccgbugs/tcvarargs.nim b/tests/ccgbugs/tcvarargs.nim new file mode 100644 index 000000000..ebaf83a4a --- /dev/null +++ b/tests/ccgbugs/tcvarargs.nim @@ -0,0 +1,34 @@ +discard """ + output: '''17 +17 +17 +17 +17 +17 +''' +""" + +# bug #1593 + +{.emit: """ +#include <stdarg.h> + +void foo(int n, ...) { + NI64 k; + int i; + va_list argp; + va_start(argp, n); + for (i = 1; i <= n; i++) { + k = va_arg(argp, NI64); + printf("%lld\n", (long long)k); + } + va_end(argp); +} +""".} + +proc foo(x: cint) {.importc, varargs, nodecl.} + +proc main() = + const k = 17'i64 + foo(6, k, k, k, k, k, k) +main() |