diff options
Diffstat (limited to 'src/c_builtin.c')
| -rw-r--r-- | src/c_builtin.c | 2 |
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)))); } |