diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2020-03-11 15:57:42 -0400 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2020-03-11 15:57:42 -0400 |
commit | 0b16c903741e2f6178c07531ab13026c3de6ce5b (patch) | |
tree | 40e8b20204618edc705638cc36620df88a859c7d /types.c | |
parent | 4cdee65cadb4f6e714fe30945ed9080e191618f6 (diff) |
prevent varargs[i] from being an lvalue
Diffstat (limited to 'types.c')
-rw-r--r-- | types.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -303,6 +303,10 @@ static Status expr_must_lval(Expression *e) { case BINARY_AT_INDEX: if (!expr_must_lval(e->binary.lhs)) return false; + if (type_is_builtin(&e->binary.lhs->type, BUILTIN_VARARGS)) { + err_print(e->where, "Cannot set or take address of vararg."); + return false; + } return true; case BINARY_DOT: return true; default: break; |