aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c_builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c_builtin.c')
-rw-r--r--src/c_builtin.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/c_builtin.c b/src/c_builtin.c
index 522c4dc..79bdcc7 100644
--- a/src/c_builtin.c
+++ b/src/c_builtin.c
@@ -147,7 +147,7 @@ Ref
builtin_va_arg_comp(Function *fn, const Expr *ex, bool discard)
{
assert(ex->t == EVAARG && ex->ty.t);
- enum irclass k = isagg(ex->ty) ? KPTR : type2cls[scalartypet(ex->ty)];
+ enum irclass k = (isagg(ex->ty) || iscomplex(ex->ty)) ? KPTR : type2cls[scalartypet(ex->ty)];
return addinstr(fn, mkinstr2(Ovaarg, k, compileexpr(fn, ex->sub, 0), mktyperef(mkirtype(ex->ty))));
}