Show specific messages for some more invalid instructions, not just "syntax error" (#1679)

This commit is contained in:
Rangi
2025-05-03 12:31:00 -04:00
committed by GitHub
parent 081f48404c
commit 2e6e1ccf06
7 changed files with 114 additions and 43 deletions

View File

@@ -1,5 +1,5 @@
error: ds-bad.asm(3):
Expected constant expression: 'unknown' is not constant at assembly time
warning: ds-bad.asm(4): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: Assembly aborted (1 error)!

View File

@@ -6,3 +6,16 @@ SECTION "invalid", ROM0[$10000]
ld b, [$4000]
bit 8, a
rst $40
ld bc, bc
ld de, hl
ld hl, de
ld hl, sp ; no offset!
; ld sp, hl is valid
ld sp, bc
ld bc, sp
ld af, bc
ld bc, af

View File

@@ -16,4 +16,20 @@ error: invalid-instructions.asm(7):
Invalid bit index 8 for BIT
error: invalid-instructions.asm(8):
Invalid address $40 for RST
error: Assembly aborted (8 errors)!
error: invalid-instructions.asm(10):
LD BC, BC is not a valid instruction; use LD B, B and LD C, C
error: invalid-instructions.asm(11):
LD DE, HL is not a valid instruction; use LD D, H and LD E, L
error: invalid-instructions.asm(12):
LD HL, DE is not a valid instruction; use LD H, D and LD L, E
error: invalid-instructions.asm(14):
LD HL, SP is not a valid instruction; use LD HL, SP + 0
error: invalid-instructions.asm(17):
LD SP, BC is not a valid instruction
error: invalid-instructions.asm(18):
syntax error, unexpected sp
error: invalid-instructions.asm(20):
syntax error, unexpected af
error: invalid-instructions.asm(21):
syntax error, unexpected af
error: Assembly aborted (16 errors)!

View File

@@ -1,64 +1,64 @@
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(23): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(24): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(25): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(26): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(28): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(29): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(30): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(35) -> warn-truncation.asm::try(31): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(37) -> warn-truncation.asm::try(23): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(37) -> warn-truncation.asm::try(24): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(37) -> warn-truncation.asm::try(25): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(37) -> warn-truncation.asm::try(26): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(23): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(24): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(25): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(26): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(28): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(29): [-Wtruncation]
Expression must be 16-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(30): [-Wtruncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
warning: warn-truncation.asm(38) -> warn-truncation.asm::try(31): [-Wtruncation]
Expression must be 16-bit
error: warn-truncation.asm(39) -> warn-truncation.asm::try(23): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(39) -> warn-truncation.asm::try(24): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(39) -> warn-truncation.asm::try(25): [-Werror=truncation]
Expression must be 16-bit
error: warn-truncation.asm(39) -> warn-truncation.asm::try(26): [-Werror=truncation]
Expression must be 16-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(23): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(24): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(25): [-Werror=truncation]
Expression must be 16-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(26): [-Werror=truncation]
Expression must be 16-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(28): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(29): [-Werror=truncation]
Expression must be 16-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(30): [-Werror=truncation]
Expression must be 8-bit
Expression must be 8-bit; use LOW() to force 8-bit
error: warn-truncation.asm(40) -> warn-truncation.asm::try(31): [-Werror=truncation]
Expression must be 16-bit