From 2d2744ec74076d29e94a2a004e308f73a86b9fa5 Mon Sep 17 00:00:00 2001 From: "Andrew J. Schorr" Date: Mon, 20 Jun 2016 10:10:30 -0400 Subject: Call fixtype in a few more places to make sure we check types properly. --- eval.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index ee674911..d7735205 100644 --- a/eval.c +++ b/eval.c @@ -712,7 +712,7 @@ set_BINMODE() { static bool warned = false; char *p; - NODE *v = BINMODE_node->var_value; + NODE *v = fixtype(BINMODE_node->var_value); if ((do_lint || do_traditional) && ! warned) { warned = true; @@ -721,7 +721,6 @@ set_BINMODE() if (do_traditional) BINMODE = TEXT_TRANSLATE; else if ((v->flags & NUMBER) != 0) { - (void) force_number(v); BINMODE = get_number_si(v); /* Make sure the value is rational. */ if (BINMODE < TEXT_TRANSLATE) @@ -1157,7 +1156,7 @@ r_get_field(NODE *n, Func_ptr *assign, bool reference) if (assign) *assign = NULL; if (do_lint) { - if ((n->flags & NUMBER) == 0) { + if ((fixtype(n)->flags & NUMBER) == 0) { lintwarn(_("attempt to field reference from non-numeric value")); if (n->stlen == 0) lintwarn(_("attempt to field reference from null string")); -- cgit v1.2.3