diff --git a/src/asm/lexer.cpp b/src/asm/lexer.cpp index abd00874..0d958255 100644 --- a/src/asm/lexer.cpp +++ b/src/asm/lexer.cpp @@ -672,9 +672,6 @@ static std::shared_ptr readMacroArg(char name) { error("Macro argument '\\<%" PRIu32 ">' not defined\n", num); } return str; - } else if (name == '0') { - error("Invalid macro argument '\\0'\n"); - return nullptr; } else { assume(name >= '1' && name <= '9'); diff --git a/test/asm/macro-arg-0.asm b/test/asm/macro-arg-0.asm new file mode 100644 index 00000000..f4944cd7 --- /dev/null +++ b/test/asm/macro-arg-0.asm @@ -0,0 +1,5 @@ +MACRO m + def x = \0 + def y = \<0> + 42 +ENDM + m hello, world diff --git a/test/asm/macro-arg-0.err b/test/asm/macro-arg-0.err new file mode 100644 index 00000000..136a5c8c --- /dev/null +++ b/test/asm/macro-arg-0.err @@ -0,0 +1,5 @@ +error: macro-arg-0.asm(5) -> macro-arg-0.asm::m(2): + Begun line continuation, but encountered character '0' +error: macro-arg-0.asm(5) -> macro-arg-0.asm::m(3): + Invalid bracketed macro argument '\<0>' +error: Assembly aborted (2 errors)!