mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
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:
@@ -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);
|
||||||
|
|||||||
3
test/link/rpn-bad-sym-id.asm
Normal file
3
test/link/rpn-bad-sym-id.asm
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
SECTION "bad", ROM0
|
||||||
|
ld a, FOO * 256
|
||||||
|
ld a, BAR * 256
|
||||||
5
test/link/rpn-bad-sym-id.out
Normal file
5
test/link/rpn-bad-sym-id.out
Normal 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
|
||||||
Reference in New Issue
Block a user