Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make make(1): fix possible return values for CondPar...
details: https://anonhg.NetBSD.org/src/rev/7d5aace0e8fe
branches: trunk
changeset: 980009:7d5aace0e8fe
user: rillig <rillig%NetBSD.org@localhost>
date: Tue Jan 19 17:57:07 2021 +0000
description:
make(1): fix possible return values for CondParser_Term
The invalid return values didn't do any harm since CondParser_Factor and
CondParser_Expr passed them through, and CondParser_Eval carefully
checks for TOK_TRUE or TOK_FALSE and treats everything else as an error.
No change in observable behavior since there is no debug logging in that
part of the code.
diffstat:
usr.bin/make/cond.c | 23 ++++++++---------------
1 files changed, 8 insertions(+), 15 deletions(-)
diffs (53 lines):
diff -r 6459d1492240 -r 7d5aace0e8fe usr.bin/make/cond.c
--- a/usr.bin/make/cond.c Tue Jan 19 17:49:13 2021 +0000
+++ b/usr.bin/make/cond.c Tue Jan 19 17:57:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.236 2021/01/19 17:49:13 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.237 2021/01/19 17:57:07 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -95,7 +95,7 @@
#include "dir.h"
/* "@(#)cond.c 8.2 (Berkeley) 1/2/94" */
-MAKE_RCSID("$NetBSD: cond.c,v 1.236 2021/01/19 17:49:13 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.237 2021/01/19 17:57:07 rillig Exp $");
/*
* The parsing of conditional expressions is based on this grammar:
@@ -924,14 +924,10 @@
Token t;
t = CondParser_Token(par, doEval);
+ if (t == TOK_TRUE || t == TOK_FALSE)
+ return t;
- if (t == TOK_EOF) {
- /*
- * If we reached the end of the expression, the expression
- * is malformed...
- */
- t = TOK_ERROR;
- } else if (t == TOK_LPAREN) {
+ if (t == TOK_LPAREN) {
/*
* T -> ( E )
*/
@@ -948,13 +944,10 @@
} else if (t == TOK_FALSE) {
t = TOK_TRUE;
}
- }
+ } else
+ return TOK_ERROR;
- /*
- * FIXME: Can at least return TOK_AND, TOK_OR, TOK_RPAREN, maybe
- * others as well.
- */
- /* TODO: assert(t == TOK_ERROR); */
+ assert(t == TOK_TRUE || t == TOK_FALSE || t == TOK_ERROR);
return t;
}
Home |
Main Index |
Thread Index |
Old Index