Prevent RGBLINK from crashing when getting the bank of a constant

This commit is contained in:
ISSOtm
2020-04-07 20:41:20 +02:00
parent 9f82fa4cf7
commit 190678107b
5 changed files with 17 additions and 0 deletions

View File

@@ -260,6 +260,11 @@ static int32_t computeRPNExpr(struct Patch const *patch,
patch->fileName,
fileSymbols[value]->name);
value = 1;
} else if (!symbol->section) {
error("%s: Requested BANK() of non-label symbol \"%s\"",
patch->fileName,
fileSymbols[value]->name);
value = 1;
} else {
value = symbol->section->bank;
}

View File

@@ -0,0 +1,2 @@
CONSTANT equ 0
EXPORT CONSTANT

View File

@@ -0,0 +1,2 @@
SECTION "Test", ROM0[0]
db BANK(CONSTANT)

View File

@@ -0,0 +1,2 @@
error: bank-const/b.asm(2): Requested BANK() of non-label symbol "CONSTANT"
Linking failed with 1 error

View File

@@ -80,6 +80,12 @@ $RGBLINK -o $gbtemp2 $otemp
i="high-low.asm" tryCmp $gbtemp $gbtemp2
rc=$(($? || $rc))
$RGBASM -o $otemp bank-const/a.asm
$RGBASM -o $gbtemp2 bank-const/b.asm
$RGBLINK -o $gbtemp $gbtemp2 $otemp > $outtemp 2>&1
i="bank-const.asm" tryDiff bank-const/err.out $outtemp
rc=$(($? || $rc))
$RGBASM -o $otemp section-union/good/a.asm
$RGBASM -o $gbtemp2 section-union/good/b.asm
$RGBLINK -o $gbtemp -l section-union/good/script.link $otemp $gbtemp2