Store IF depth relative to each fstack context

This disallows starting/ending an IF inside an
INCLUDEd file or a macro expansion
This commit is contained in:
Rangi
2021-01-08 16:28:51 -05:00
committed by Eldred Habert
parent 62bea23c49
commit cab9cb06a3
12 changed files with 64 additions and 21 deletions

View File

@@ -20,3 +20,4 @@ rept 1
break
no endc
endr
println "done"

View File

@@ -2,4 +2,5 @@ warning: break.asm(9): [-Wuser]
done 5
warning: break.asm(17): [-Wuser]
OK
error: Unterminated IF construct (1 levels)!
FATAL: break.asm(18) -> break.asm::REPT~1(23):
Ended block with 1 unterminated IF construct

View File

@@ -0,0 +1,3 @@
if 1
println "inside include"
; no endc

View File

@@ -0,0 +1,15 @@
if 1
if 0
println "A"
elif 1
println "B"
else
println "C"
endc
else
println "D"
endc
INCLUDE "unterminated-if-include.inc"
println "done"

View File

@@ -0,0 +1,2 @@
FATAL: unterminated-if.asm(13) -> unterminated-if-include.inc(4):
Ended block with 1 unterminated IF construct

View File

@@ -0,0 +1,2 @@
B
inside include