Fix bug where macro names can be treated as numeric symbols (#1653)

This commit is contained in:
Rangi
2025-02-08 23:03:21 +01:00
committed by GitHub
parent 4c916b8da8
commit 177a3abfac
3 changed files with 27 additions and 0 deletions

View File

@@ -75,6 +75,9 @@ void Expression::makeSymbol(std::string const &symName) {
if (Symbol *sym = sym_FindScopedSymbol(symName); sym_IsPC(sym) && !sect_GetSymbolSection()) {
error("PC has no value outside of a section\n");
data = 0;
} else if (sym && !sym->isNumeric() && !sym->isLabel()) {
error("'%s' is not a numeric symbol\n", symName.c_str());
data = 0;
} else if (!sym || !sym->isConstant()) {
isSymbol = true;