aboutsummaryrefslogtreecommitdiff
path: root/tests/tcctest.c
diff options
context:
space:
mode:
authorgrischka <grischka>2016-07-10 20:44:49 +0200
committergrischka <grischka>2016-07-10 20:44:49 +0200
commit41349948f8db22b09a22628dad15eb40a45d2eff (patch)
tree29d52912207a9ddecfedb7161c69fb0502c9c0f1 /tests/tcctest.c
parent03609051249a06b458b183596d28b1b883189fc2 (diff)
downloadtinycc-41349948f8db22b09a22628dad15eb40a45d2eff.tar.gz
tinycc-41349948f8db22b09a22628dad15eb40a45d2eff.tar.bz2
win64: fix va_arg
fixes 5c35ba66c5ade4713bbd9c005e66889f6d7db293 Implementation was consistent within tcc but incompatible with the ABI (for example library functions vprintf etc) Also: - tccpp.c/get_tok_str() : avoid "unknown format "%llu" warning - x86_64_gen.c/gen_vla_alloc() : fix vstack leak
Diffstat (limited to 'tests/tcctest.c')
-rw-r--r--tests/tcctest.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/tcctest.c b/tests/tcctest.c
index e5ec783..6ec23a1 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -2116,6 +2116,14 @@ void stdarg_for_struct(struct myspace bob, ...)
va_end(ap);
}
+void stdarg_for_libc(const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ vprintf(fmt, args);
+ va_end(args);
+}
+
void stdarg_test(void)
{
LONG_DOUBLE ld = 1234567891234LL;
@@ -2162,6 +2170,7 @@ void stdarg_test(void)
bob.profile = 42;
stdarg_for_struct(bob, bob, bob, bob.profile);
+ stdarg_for_libc("stdarg_for_libc: %s %.2f %d\n", "string", 1.23, 456);
}
void whitespace_test(void)