Print useful error message when '\0' is used in a symbol name

AppendMacroArg() was passing 0 to sym_FindMacroArg(), which caused an assertion
failure. Now, AppendMacroArg() prints an error message instead.
This commit is contained in:
dbrotz
2019-09-09 09:46:18 -07:00
parent 2e6f5ac679
commit 889dd83798
3 changed files with 5 additions and 2 deletions

View File

@@ -198,10 +198,10 @@ char *AppendMacroArg(char whichArg, char *dest, size_t *destIndex)
if (whichArg == '@')
marg = sym_FindMacroArg(-1);
else if (whichArg >= '0' && whichArg <= '9')
else if (whichArg >= '1' && whichArg <= '9')
marg = sym_FindMacroArg(whichArg - '0');
else
fatalerror("Malformed ID");
fatalerror("Invalid macro argument '\\%c' in symbol", whichArg);
if (!marg)
fatalerror("Macro argument '\\%c' not defined", whichArg);

View File

@@ -0,0 +1 @@
x\0

View File

@@ -0,0 +1,2 @@
ERROR: symbol-invalid-macro-arg.asm(1):
Invalid macro argument '\0' in symbol