scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

commit 9b162b0052316caaec77869017c395d0d050033e
parent 05c02ab56769cd7ff85630d501627941d6abe84f
Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date:   Thu,  5 Mar 2026 15:31:26 +0100

cc1: Accept integer comparations in enum variables

Diffstat:
Msrc/cmd/scc-cc/cc1/expr.c | 1+
Atests/cc/execute/0248-enum.c | 12++++++++++++
2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/cmd/scc-cc/cc1/expr.c b/src/cmd/scc-cc/cc1/expr.c @@ -47,6 +47,7 @@ cmpnode(Node *np, unsigned long long val) tp = sym->type; switch (tp->op) { + case ENUM: case PTR: case INT: mask = (val > 1) ? ones(np->type->size) : -1; diff --git a/tests/cc/execute/0248-enum.c b/tests/cc/execute/0248-enum.c @@ -0,0 +1,12 @@ +enum e { + C1, + C2, +}; + +int +main(void) +{ + enum e v = C2; + + return v == 0 ? 1 : 0; +}