aboutsummaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rw-r--r--bootstrap/parse.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bootstrap/parse.c b/bootstrap/parse.c
index fd38860..b16ef13 100644
--- a/bootstrap/parse.c
+++ b/bootstrap/parse.c
@@ -1317,6 +1317,9 @@ pexpostfix(struct parser *P) {
fatal(P, arg.span,
"call argument #%d type mismatch (%t, expected %t)",
i, arg.ty, ty->fn.params.d[i]);
+ if (i >= n && (arg.ty->t == TYstruct || arg.ty->t == TYunion || arg.ty->t == TYeunion || arg.ty->t == TYslice)) {
+ fatal(P, arg.span, "cannot pass aggregate value as variadic argument");
+ }
++i;
vec_push(&args, arg);