Fix RGBLINK evaluation of undefined RPN symbols

This was the only RPN case to not assign a deliberate value
in all possible branches.

Fixes #1858
This commit is contained in:
Rangi
2025-11-18 16:40:24 -05:00
parent 5c2c893ced
commit 3553c9c4da
3 changed files with 9 additions and 0 deletions

View File

@@ -437,6 +437,7 @@ static int32_t computeRPNExpr(Patch const &patch, std::vector<Symbol> const &fil
} else if (Symbol const *symbol = getSymbol(fileSymbols, value); !symbol) { } else if (Symbol const *symbol = getSymbol(fileSymbols, value); !symbol) {
errorAt(patch, "Undefined symbol `%s`", fileSymbols[value].name.c_str()); errorAt(patch, "Undefined symbol `%s`", fileSymbols[value].name.c_str());
sym_TraceLocalAliasedSymbols(fileSymbols[value].name); sym_TraceLocalAliasedSymbols(fileSymbols[value].name);
value = 0;
isError = true; isError = true;
} else if (std::holds_alternative<Label>(symbol->data)) { } else if (std::holds_alternative<Label>(symbol->data)) {
Label const &label = std::get<Label>(symbol->data); Label const &label = std::get<Label>(symbol->data);

View File

@@ -0,0 +1,3 @@
SECTION "bad", ROM0
ld a, FOO * 256
ld a, BAR * 256

View File

@@ -0,0 +1,5 @@
error: Undefined symbol `BAR`
at rpn-bad-sym-id.asm(3)
error: Undefined symbol `FOO`
at rpn-bad-sym-id.asm(2)
Linking failed with 2 errors