From ee3a93a4426bf7cea6fd877f9d85cd8f1f9ae9ff Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Fri, 9 Aug 2024 23:22:36 -0400 Subject: [PATCH] Test macro args `\0` and `\<0>` --- src/asm/lexer.cpp | 3 --- test/asm/macro-arg-0.asm | 5 +++++ test/asm/macro-arg-0.err | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 test/asm/macro-arg-0.asm create mode 100644 test/asm/macro-arg-0.err 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)!