aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-12-14 23:29:59 +0100
committerMichael Forney <mforney@mforney.org>2023-05-02 11:53:44 -0700
commit0985a7893a4b5de63a67ebab445892d9fffe275b (patch)
treef9e0bec9ebe796b499669219fdc93596c9ac84bc
parent9ae9aa6dce652ab62c1c9ca34e8419e5dc510de1 (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.h2
-rw-r--r--decl.c2
-rw-r--r--expr.c4
3 files changed, 4 insertions, 4 deletions
diff --git a/cc.h b/cc.h
index 6f2a193..860ca94 100644
--- a/cc.h
+++ b/cc.h
@@ -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 *);
diff --git a/decl.c b/decl.c
index 324e5aa..8ffc058 100644
--- a/decl.c
+++ b/decl.c
@@ -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;
diff --git a/expr.c b/expr.c
index 1423248..04c7325 100644
--- a/expr.c
+++ b/expr.c
@@ -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)