Handle invalid expressions in .WORD directives with a message.

This is most relevant in implied .WORD directives which are caused by an
attempt to call a macro (which happens to be undefined) with arguments
that don't parse as valid expressions.
This commit is contained in:
Olaf Seibert
2015-06-01 23:30:16 +02:00
parent ff5179743c
commit c423ee346a
3 changed files with 31 additions and 3 deletions

View File

@@ -653,9 +653,14 @@ int do_word(
} else {
EX_TREE *value = parse_expr(cp, 0);
store_value(stack, tr, size, value);
if (value->cp > cp) {
store_value(stack, tr, size, value);
cp = value->cp;
cp = value->cp;
} else {
report(stack->top, "Invalid expression in .WORD\n");
cp = ""; /* force loop to end */
}
free_tree(value);
}