diff options
| author | Samuel Lidén Borell <samuel@kodafritt.se> | 2026-03-07 20:56:47 +0100 |
|---|---|---|
| committer | Samuel Lidén Borell <samuel@kodafritt.se> | 2026-03-07 20:56:47 +0100 |
| commit | 4c02c75ac16f467b1072cee566262d372ddb7aa5 (patch) | |
| tree | 1fbea548e0572e60311aa8e506e8d3b3fc3e3df8 | |
| parent | 06c7e7f3746db958d95938fea3952bf3750fc53c (diff) | |
| download | slul-try2-main.tar.gz slul-try2-main.zip | |
Line breaks inside macro invocations are supported by the C standard,
but it is an edge case, and there could be buggy compilers that don't
support it.
| -rw-r--r-- | bootstrap/varstate.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/bootstrap/varstate.c b/bootstrap/varstate.c index 0f81f59..6b2b5ed 100644 --- a/bootstrap/varstate.c +++ b/bootstrap/varstate.c @@ -152,11 +152,14 @@ void varstate_mark_declared(struct Var *var) static void require_in_scope(const struct Var *var) { if (var->declared_at_level > scope_level) { - assert(var->declared_at_level == NOT_YET_DECLARED || - var->declared_at_level == OUT_OF_SCOPE); - error_var(var->declared_at_level == NOT_YET_DECLARED ? - "Variable hasn't been declared yet" : - "Variable has gone out of scope here", var); + const char *msg; + if (var->declared_at_level == NOT_YET_DECLARED) { + msg = "Variable hasn't been declared yet"; + } else { + assert(var->declared_at_level == OUT_OF_SCOPE); + msg = "Variable has gone out of scope here"; + } + error_var(msg, var); } } |
