Mercurial > hg > index.cgi
diff lwasm/pseudo.c @ 561:a6a9d46f071f
Make ifdef and ifndef complain if they aren't given a symbol
If makes no sense to test "nothing" for definedness. If no symbol is
provided to ifdef or ifndef, complain about a bad operand.
author | William Astle <lost@l-w.ca> |
---|---|
date | Thu, 30 Nov 2023 16:54:12 -0700 |
parents | ddc7b05a5675 |
children | 87f904e2b304 |
line wrap: on
line diff
--- a/lwasm/pseudo.c Fri Sep 22 12:15:09 2023 -0600 +++ b/lwasm/pseudo.c Thu Nov 30 16:54:12 2023 -0700 @@ -1342,6 +1342,12 @@ again: for (i = 0; (*p)[i] && !isspace((*p)[i]) && (*p)[i] != '|' && (*p)[i] != '&'; i++) /* do nothing */ ; + + if (i == 0) + { + lwasm_register_error(as, l, E_OPERAND_BAD); + return; + } sym = lw_strndup(*p, i); (*p) += i; @@ -1382,6 +1388,12 @@ for (i = 0; (*p)[i] && !isspace((*p)[i]) && (*p)[i] != '&' && (*p)[i] != '|'; i++) /* do nothing */ ; + if (i == 0) + { + lwasm_register_error(as, l, E_OPERAND_BAD); + return; + } + sym = lw_strndup(*p, i); (*p) += i;