diff options
author | Quentin Carbonneaux <quentin@c9x.me> | 2022-12-14 23:29:59 +0100 |
---|---|---|
committer | Michael Forney <mforney@mforney.org> | 2023-05-02 11:53:44 -0700 |
commit | 0985a7893a4b5de63a67ebab445892d9fffe275b (patch) | |
tree | f9e0bec9ebe796b499669219fdc93596c9ac84bc | |
parent | 9ae9aa6dce652ab62c1c9ca34e8419e5dc510de1 (diff) |
fix bootstrap by renaming constexpr()
The addition of C23 keywords made 'constexpr'
unusable as a function name. This prevents cproc
from bootstrapping. This patch simply renames
the problematic function to 'evalexpr'.
-rw-r--r-- | cc.h | 2 | ||||
-rw-r--r-- | decl.c | 2 | ||||
-rw-r--r-- | expr.c | 4 |
3 files changed, 4 insertions, 4 deletions
@@ -487,7 +487,7 @@ struct type *stringconcat(struct stringlit *, _Bool); struct expr *expr(struct scope *); struct expr *assignexpr(struct scope *); -struct expr *constexpr(struct scope *); +struct expr *evalexpr(struct scope *); unsigned long long intconstexpr(struct scope *, _Bool); void delexpr(struct expr *); @@ -216,7 +216,7 @@ tagspec(struct scope *s) name = tok.lit; next(); if (consume(TASSIGN)) { - e = constexpr(s); + e = evalexpr(s); if (e->kind != EXPRCONST || !(e->type->prop & PROPINT)) error(&tok.loc, "expected integer constant expression"); i = e->u.constant.u; @@ -1232,7 +1232,7 @@ condexpr(struct scope *s) } struct expr * -constexpr(struct scope *s) +evalexpr(struct scope *s) { return eval(condexpr(s), EVALARITH); } @@ -1242,7 +1242,7 @@ intconstexpr(struct scope *s, bool allowneg) { struct expr *e; - e = constexpr(s); + e = evalexpr(s); if (e->kind != EXPRCONST || !(e->type->prop & PROPINT)) error(&tok.loc, "not an integer constant expression"); if (!allowneg && e->type->u.basic.issigned && e->u.constant.u >> 63) |