diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-22 15:13:29 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-22 15:13:29 +0300 |
commit | 2b1669cebbdb14ff93bd455439e31682fbd9c548 (patch) | |
tree | 51092d953d2a5e69f0d972a86fdcb1a12c466a1c /src | |
parent | 2203a00e3e96fa24d591150e7d85619cdc0c716e (diff) | |
download | paranucker-2b1669cebbdb14ff93bd455439e31682fbd9c548.tar.gz paranucker-2b1669cebbdb14ff93bd455439e31682fbd9c548.tar.bz2 paranucker-2b1669cebbdb14ff93bd455439e31682fbd9c548.tar.xz paranucker-2b1669cebbdb14ff93bd455439e31682fbd9c548.zip |
In places where searched function parameters nodes (PARM_DECL)
also search for varibles (VAR_DECL).
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/analysis.cpp | 2 | ||||
-rw-r--r-- | src/analysis/expression.cpp | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp index 3e4b91c..271f8f3 100644 --- a/src/analysis/analysis.cpp +++ b/src/analysis/analysis.cpp @@ -145,7 +145,7 @@ bool checkForReport(Node *node, { node = skipNop(node); return node && - node->nodeType == PARM_DECL && + (node->nodeType == PARM_DECL || node->nodeType == VAR_DECL) && wi.checkNullVars.find(node->label) != wi.checkNullVars.end(); } diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index b9bd9bc..e460438 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -93,7 +93,7 @@ void analyseNeExpr(NeExprNode *node, const WalkItem &wi, WalkItem &wo) return; // Log::dumpWI(node, "NE in ", wo); - // PARM_DECL? + // PARM_DECL or VAR_DECL? Node *node1 = skipNop(node->args[0]); // INTEGER_CST? Node *node2 = skipNop(node->args[1]); @@ -101,7 +101,7 @@ void analyseNeExpr(NeExprNode *node, const WalkItem &wi, WalkItem &wo) // if (var != 0) if (node1 && node2 && - node1->nodeType == PARM_DECL && + (node1->nodeType == PARM_DECL || node1->nodeType == VAR_DECL) && node2->nodeType == INTEGER_CST && wi.checkNullVars.find(node1->label) != wi.checkNullVars.end() && node2->label == "0") @@ -125,14 +125,14 @@ void analyseEqExpr(EqExprNode *node, const WalkItem &wi, WalkItem &wo) return; Log::dumpWI(node, "EQ in ", wo); - // PARM_DECL? + // PARM_DECL or VAR_DECL ? Node *node1 = skipNop(node->args[0]); // INTEGER_CST? Node *node2 = skipNop(node->args[1]); // if (var == 0) if (node1 && node2 && - node1->nodeType == PARM_DECL && + (node1->nodeType == PARM_DECL || node1->nodeType == VAR_DECL) && node2->nodeType == INTEGER_CST && wi.checkNullVars.find(node1->label) != wi.checkNullVars.end() && node2->label == "0") |