aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/analyzer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/analyzer.c b/src/analyzer.c
index 6154029..4b15e0a 100644
--- a/src/analyzer.c
+++ b/src/analyzer.c
@@ -417,7 +417,7 @@ analyzeexpr(struct azctx *ctx, idx_t i)
SET_DST_IF_SRC(ctx->cnst, i, rhs);
type_t *t = ctx->types[rhs];
if (ctx->ast.kinds[i] == ASTUNNEG
- && (t->kind != TYPE_NUM || !t->issigned))
+ && (t->kind != TYPE_NUM || (!t->issigned && t->size != 0)))
{
err("analyzer: Unary negation is reserved for signed numeric "
"types");