aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2026-10-06 17:33:16 +0200
committerMiquel Sabaté Solà <mssola@mssola.com>2026-10-06 17:33:16 +0200
commite71a73d0875c416507a3207bdec6fee145a79f68 (patch)
tree23bb734234b1e78d59333ef39f6a24937fae8c25 /tests
parent4bf12db91feb5db98d65b518dbad0c1a8c6748df (diff)
downloadtools.nes-e71a73d0875c416507a3207bdec6fee145a79f68.tar.gz
tools.nes-e71a73d0875c416507a3207bdec6fee145a79f68.zip
Don't error out on conditional .include
The hard requirement that an .include statement cannot be inside of another block was, in the end, a bit short-sighted. Imagine the following block: .ifdef DEBUG .include "debug.s" .endif This is perfectly sound-looking code, and it should not be punished as the developer is doing something that is not bending the assembler in weird ways. Hence, just nuke this check. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/code_to_include.s5
-rw-r--r--tests/conditionally_include.s16
-rw-r--r--tests/expected/conditionally_include.nesbin0 -> 17 bytes
-rw-r--r--tests/expected/conditionally_include.txt0
-rw-r--r--tests/expected/conditionally_include_debug.nesbin0 -> 20 bytes
-rw-r--r--tests/expected/conditionally_include_debug.txt0
6 files changed, 21 insertions, 0 deletions
diff --git a/tests/code_to_include.s b/tests/code_to_include.s
new file mode 100644
index 0000000..4f315dc
--- /dev/null
+++ b/tests/code_to_include.s
@@ -0,0 +1,5 @@
+.segment "CODE"
+
+.proc foo
+ rts
+.endproc
diff --git a/tests/conditionally_include.s b/tests/conditionally_include.s
new file mode 100644
index 0000000..67ef7d2
--- /dev/null
+++ b/tests/conditionally_include.s
@@ -0,0 +1,16 @@
+.segment "HEADER"
+ .byte 'N', 'E', 'S', $1A
+ .byte $02, $01
+ .byte $00
+ .byte $00
+
+.segment "CODE"
+
+;;; asan:stack full
+
+.ifdef DEBUG
+ .include "code_to_include.s"
+ jsr foo
+.else
+ nop
+.endif
diff --git a/tests/expected/conditionally_include.nes b/tests/expected/conditionally_include.nes
new file mode 100644
index 0000000..a76a79b
--- /dev/null
+++ b/tests/expected/conditionally_include.nes
Binary files differ
diff --git a/tests/expected/conditionally_include.txt b/tests/expected/conditionally_include.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/expected/conditionally_include.txt
diff --git a/tests/expected/conditionally_include_debug.nes b/tests/expected/conditionally_include_debug.nes
new file mode 100644
index 0000000..d7b8ac5
--- /dev/null
+++ b/tests/expected/conditionally_include_debug.nes
Binary files differ
diff --git a/tests/expected/conditionally_include_debug.txt b/tests/expected/conditionally_include_debug.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/expected/conditionally_include_debug.txt