# HG changeset patch # User William Astle # Date 1701388452 25200 # Node ID a6a9d46f071f010f3338980a0517660466aa3c37 # Parent dba08c7dff966fc181bec43a34e2fe7d1b7fd345 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. diff -r dba08c7dff96 -r a6a9d46f071f lwasm/pseudo.c --- 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;