From c65725cb1b34c2b0b812d52e0323189bbf693d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Kr=C3=BCger?= Date: Sun, 2 Apr 2017 16:30:16 +0200 Subject: [PATCH] matchcompiler: don't emmit '!true' or '!false'. Fold to 'false' or 'true'. --- tools/matchcompiler.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/matchcompiler.py b/tools/matchcompiler.py index 6572d8935..71f176d59 100755 --- a/tools/matchcompiler.py +++ b/tools/matchcompiler.py @@ -188,7 +188,14 @@ class MatchCompiler: gotoNextToken = ' tok = tok ? tok->next() : NULL;\n' else: - ret += ' if (!tok || !' + self._compileCmd(tok) + ')\n' + negatedTok ="!" + self._compileCmd(tok) + # fold !true => false ; !false => true + # this avoids cppcheck warnings about condition always being true/false + if (negatedTok == "!false"): + negatedTok = "true" + elif (negatedTok == "!true"): + negatedTok = "false" + ret += ' if (!tok || ' + negatedTok + ')\n' ret += ' ' + returnStatement if isFindMatch: