summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-03 16:22:48 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-03 16:22:48 +0300
commitc34af863bf4f6ad74257302c2effb535dd115289 (patch)
tree3ff0f9e746ae729d3ab9487aae1a9baa9344cc71 /src
parentd41009a87ffaf8b608f5584a0450c634394473aa (diff)
downloadparanucker-c34af863bf4f6ad74257302c2effb535dd115289.tar.gz
paranucker-c34af863bf4f6ad74257302c2effb535dd115289.tar.bz2
paranucker-c34af863bf4f6ad74257302c2effb535dd115289.tar.xz
paranucker-c34af863bf4f6ad74257302c2effb535dd115289.zip
Rename checkedNullVars into checkedThenNullVars and checkedNonNullVars into checkedThenNonNullVars.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/checks.cpp4
-rw-r--r--src/analysis/collections.cpp28
-rw-r--r--src/analysis/collections.h8
-rw-r--r--src/analysis/expression.cpp54
-rw-r--r--src/analysis/statement.cpp42
-rw-r--r--src/analysis/walkitem.h12
-rw-r--r--src/logger.cpp7
7 files changed, 78 insertions, 77 deletions
diff --git a/src/analysis/checks.cpp b/src/analysis/checks.cpp
index 15f15bd..7500602 100644
--- a/src/analysis/checks.cpp
+++ b/src/analysis/checks.cpp
@@ -122,8 +122,8 @@ std::set<std::string> getCollection(Node *node,
else convertCollection(removeNullVarsAll)
else convertCollection(removeNullVars)
else convertCollection(addNullVars)
- else convertCollection(checkedNullVars)
- else convertCollection(checkedNonNullVars)
+ else convertCollection(checkedThenNullVars)
+ else convertCollection(checkedThenNonNullVars)
else
{
reportWrongCheck(node);
diff --git a/src/analysis/collections.cpp b/src/analysis/collections.cpp
index d11e34a..9dc4429 100644
--- a/src/analysis/collections.cpp
+++ b/src/analysis/collections.cpp
@@ -159,36 +159,36 @@ void addLinkedVar(WalkItem &wi,
}
// merger two checked for null var sets
-void mergeNullChecked(WalkItem &wi1, WalkItem &wi2)
+void mergeThenNullChecked(WalkItem &wi1, WalkItem &wi2)
{
- wi1.checkedNullVars.insert(wi2.checkedNullVars.begin(),
- wi2.checkedNullVars.end());
+ wi1.checkedThenNullVars.insert(wi2.checkedThenNullVars.begin(),
+ wi2.checkedThenNullVars.end());
}
// merger two checked for non null var sets
-void mergeNonNullChecked(WalkItem &wi1, WalkItem &wi2)
+void mergeThenNonNullChecked(WalkItem &wi1, WalkItem &wi2)
{
- wi1.checkedNonNullVars.insert(wi2.checkedNonNullVars.begin(),
- wi2.checkedNonNullVars.end());
+ wi1.checkedThenNonNullVars.insert(wi2.checkedThenNonNullVars.begin(),
+ wi2.checkedThenNonNullVars.end());
}
// intersect two checked for null sets
-void intersectNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2)
+void intersectThenNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2)
{
- FOR_EACH (it, wi1.checkedNullVars)
+ FOR_EACH (it, wi1.checkedThenNullVars)
{
- if (isIn(it, wi2.checkedNullVars))
- wi.checkedNullVars.insert(it);
+ if (isIn(it, wi2.checkedThenNullVars))
+ wi.checkedThenNullVars.insert(it);
}
}
// intersect two checked for non null sets
-void intersectNonNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2)
+void intersectThenNonNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2)
{
- FOR_EACH (it, wi1.checkedNonNullVars)
+ FOR_EACH (it, wi1.checkedThenNonNullVars)
{
- if (isIn(it, wi2.checkedNonNullVars))
- wi.checkedNonNullVars.insert(it);
+ if (isIn(it, wi2.checkedThenNonNullVars))
+ wi.checkedThenNonNullVars.insert(it);
}
}
diff --git a/src/analysis/collections.h b/src/analysis/collections.h
index 11f88f7..70d8d03 100644
--- a/src/analysis/collections.h
+++ b/src/analysis/collections.h
@@ -48,13 +48,13 @@ namespace Analysis
void removeNeedCheckNullVarsSet(WalkItem &wi,
std::set<std::string> &vars);
- void mergeNullChecked(WalkItem &wi1, WalkItem &wi2);
+ void mergeThenNullChecked(WalkItem &wi1, WalkItem &wi2);
- void mergeNonNullChecked(WalkItem &wi1, WalkItem &wi2);
+ void mergeThenNonNullChecked(WalkItem &wi1, WalkItem &wi2);
- void intersectNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2);
+ void intersectThenNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2);
- void intersectNonNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2);
+ void intersectThenNonNullChecked(WalkItem &wi, WalkItem &wi1, WalkItem &wi2);
void removeFromNeedCheckNullVars(WalkItem &wi,
std::set<std::string> &vars);
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 113be90..5895d98 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -228,7 +228,7 @@ void analyseNeExpr(NeExprNode *node, const WalkItem &wi, WalkItem &wo)
{
if (isIn(var, wi.needCheckNullVars))
{
- wo.checkedNonNullVars.insert(var);
+ wo.checkedThenNonNullVars.insert(var);
wo.knownNonNullVars.insert(var);
wo.cleanExpr = true;
wo.uselessExpr = false;
@@ -339,7 +339,7 @@ void analyseEqExpr(EqExprNode *node, const WalkItem &wi, WalkItem &wo)
{
if (isIn(var, wi.needCheckNullVars))
{
- wo.checkedNullVars.insert(var);
+ wo.checkedThenNullVars.insert(var);
wo.knownNullVars.insert(var);
wo.cleanExpr = true;
wo.uselessExpr = false;
@@ -367,32 +367,32 @@ void analyseOrCondition(Node *node, Node *node1, Node *node2, const WalkItem &wi
walkTree(node1, wi, wo1);
Log::dumpWI(node, "wo1 ", wo1);
WalkItem wi2 = wi;
- removeNeedCheckNullVarsSetAll(wi2, wo1.checkedNullVars);
- wi2.needCheckNullVars.insert(wo1.checkedNonNullVars.begin(),
- wo1.checkedNonNullVars.end());
- wi2.knownVars.insert(wo1.checkedNonNullVars.begin(),
- wo1.checkedNonNullVars.end());
- wi2.knownVars.insert(wo1.checkedNullVars.begin(),
- wo1.checkedNullVars.end());
+ removeNeedCheckNullVarsSetAll(wi2, wo1.checkedThenNullVars);
+ wi2.needCheckNullVars.insert(wo1.checkedThenNonNullVars.begin(),
+ wo1.checkedThenNonNullVars.end());
+ wi2.knownVars.insert(wo1.checkedThenNonNullVars.begin(),
+ wo1.checkedThenNonNullVars.end());
+ wi2.knownVars.insert(wo1.checkedThenNullVars.begin(),
+ wo1.checkedThenNullVars.end());
Log::dumpWI(node, "wi2 ", wi2);
walkTree(node2, wi2, wo2);
Log::dumpWI(node, "wo2 ", wo2);
// probably condition wrong
// if (wo1.cleanExpr)
-// mergeNullChecked(wo, wo1);
+// mergeThenNullChecked(wo, wo1);
// probably condition wrong
// if (wo2.cleanExpr)
-// mergeNullChecked(wo, wo2);
+// mergeThenNullChecked(wo, wo2);
// if (wo1.cleanExpr && !wo2.cleanExpr)
// {
-// mergeNonNullChecked(wo, wo1);
+// mergeThenNonNullChecked(wo, wo1);
// }
// if (wo2.cleanExpr && !wo1.cleanExpr)
// {
-// mergeNonNullChecked(wo, wo2);
+// mergeThenNonNullChecked(wo, wo2);
// }
- intersectNonNullChecked(wo, wo1, wo2);
- intersectNullChecked(wo, wo1, wo2);
+ intersectThenNonNullChecked(wo, wo1, wo2);
+ intersectThenNullChecked(wo, wo1, wo2);
// need intersect knownNull/knownNonNull
@@ -408,13 +408,13 @@ void analyseAndCondition(Node *node, Node *node1, Node *node2, const WalkItem &w
walkTree(node1, wi, wo1);
Log::dumpWI(node, "wo1 ", wo1);
WalkItem wi2 = wi;
- removeNeedCheckNullVarsSetAll(wi2, wo1.checkedNonNullVars);
- wi2.needCheckNullVars.insert(wo1.checkedNullVars.begin(),
- wo1.checkedNullVars.end());
- wi2.knownNullVars.insert(wo1.checkedNullVars.begin(),
- wo1.checkedNullVars.end());
- wi2.knownNonNullVars.insert(wo1.checkedNonNullVars.begin(),
- wo1.checkedNonNullVars.end());
+ removeNeedCheckNullVarsSetAll(wi2, wo1.checkedThenNonNullVars);
+ wi2.needCheckNullVars.insert(wo1.checkedThenNullVars.begin(),
+ wo1.checkedThenNullVars.end());
+ wi2.knownNullVars.insert(wo1.checkedThenNullVars.begin(),
+ wo1.checkedThenNullVars.end());
+ wi2.knownNonNullVars.insert(wo1.checkedThenNonNullVars.begin(),
+ wo1.checkedThenNonNullVars.end());
Log::dumpWI(node, "wi2 ", wi2);
walkTree(node2, wi2, wo2);
Log::dumpWI(node, "wo2 ", wo2);
@@ -423,15 +423,15 @@ void analyseAndCondition(Node *node, Node *node1, Node *node2, const WalkItem &w
// probably condition wrong
if (!wo1.uselessExpr && !wo2.uselessExpr)
{ // need combine wo1 and wo2
- intersectNullChecked(wo, wo1, wo2);
+ intersectThenNullChecked(wo, wo1, wo2);
}
if (!wo1.uselessExpr)
{
- mergeNonNullChecked(wo, wo1);
+ mergeThenNonNullChecked(wo, wo1);
}
if (!wo2.uselessExpr)
{
- mergeNonNullChecked(wo, wo2);
+ mergeThenNonNullChecked(wo, wo2);
}
wo.knownNullVars.insert(wo1.knownNullVars.begin(),
wo1.knownNullVars.end());
@@ -520,8 +520,8 @@ void analyseCompoundExpr(CompoundExprNode *node, const WalkItem &wi, WalkItem &w
// probably condition wrong
if (wo2.cleanExpr)
{
- mergeNullChecked(wo, wo2);
- mergeNonNullChecked(wo, wo2);
+ mergeThenNullChecked(wo, wo2);
+ mergeThenNonNullChecked(wo, wo2);
}
wo.cleanExpr = true;
diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp
index 14387d3..3a89d65 100644
--- a/src/analysis/statement.cpp
+++ b/src/analysis/statement.cpp
@@ -63,17 +63,17 @@ void analyseCondition(Node *node,
WalkItem wi2 = wi;
if (wco.cleanExpr)
- removeNeedCheckNullVarsSetAll(wi2, wco.checkedNonNullVars);
- wi2.needCheckNullVars.insert(wco.checkedNullVars.begin(),
- wco.checkedNullVars.end());
+ removeNeedCheckNullVarsSetAll(wi2, wco.checkedThenNonNullVars);
+ wi2.needCheckNullVars.insert(wco.checkedThenNullVars.begin(),
+ wco.checkedThenNullVars.end());
// wi2.knownNonNullVars.insert(wco.knownNonNullVars.begin(),
// wco.knownNonNullVars.end());
// wi2.knownNullVars.insert(wco.knownNullVars.begin(),
// wco.knownNullVars.end());
- wi2.knownNullVars.insert(wco.checkedNullVars.begin(),
- wco.checkedNullVars.end());
- wi2.knownNonNullVars.insert(wco.checkedNonNullVars.begin(),
- wco.checkedNonNullVars.end());
+ wi2.knownNullVars.insert(wco.checkedThenNullVars.begin(),
+ wco.checkedThenNullVars.end());
+ wi2.knownNonNullVars.insert(wco.checkedThenNonNullVars.begin(),
+ wco.checkedThenNonNullVars.end());
wi2.needCheckNullVars = wi2.knownVars;
removeFromNeedCheckNullVars(wi2, wi2.knownNonNullVars);
wo2 = wi2;
@@ -87,9 +87,9 @@ void analyseCondition(Node *node,
WalkItem wi3 = wi;
// if (wco.cleanExpr)
-// removeNeedCheckNullVarsSetAll(wi3, wco.checkedNullVars);
-// wi3.needCheckNullVars.insert(wco.checkedNonNullVars.begin(),
-// wco.checkedNonNullVars.end());
+// removeNeedCheckNullVarsSetAll(wi3, wco.checkedThenNullVars);
+// wi3.needCheckNullVars.insert(wco.checkedThenNonNullVars.begin(),
+// wco.checkedThenNonNullVars.end());
// wi3.knownNonNullVars.insert(wco.knownNullVars.begin(),
// wco.knownNullVars.end());
// wi3.knownNullVars.insert(wco.knownNonNullVars.begin(),
@@ -97,13 +97,13 @@ void analyseCondition(Node *node,
// wi3.needCheckNullVars = wi3.knownVars;
// removeFromNeedCheckNullVars(wi3, wi3.knownNonNullVars);
if (wo2.cleanExpr)
- mergeNullChecked(wi3, wo2);
+ mergeThenNullChecked(wi3, wo2);
// ?
- mergeNonNullChecked(wi3, wo2);
+ mergeThenNonNullChecked(wi3, wo2);
if (wo2.isReturned)
{
// add variable for ignore for all parent nodes except special like IF_STMT
- FOR_EACH (it, wco.checkedNullVars)
+ FOR_EACH (it, wco.checkedThenNullVars)
{
wi3.removeNullVarsAll.insert(it);
wi3.knownNonNullVars.insert(it);
@@ -111,7 +111,7 @@ void analyseCondition(Node *node,
}
if (wco.cleanExpr)
{
- FOR_EACH (it, wco.checkedNonNullVars)
+ FOR_EACH (it, wco.checkedThenNonNullVars)
{
wi3.knownNullVars.insert(it);
}
@@ -130,17 +130,17 @@ void analyseCondition(Node *node,
// probably condition wrong
if (wo2.cleanExpr)
- mergeNullChecked(wo, wo2);
+ mergeThenNullChecked(wo, wo2);
// probably condition wrong
if (wo3.cleanExpr)
- mergeNullChecked(wo, wo3);
+ mergeThenNullChecked(wo, wo3);
// need check for cleanExpr?
- intersectNonNullChecked(wo, wo2, wo3);
+ intersectThenNonNullChecked(wo, wo2, wo3);
if (wo2.isReturned)
{
// add variable for ignore for all parent nodes except special like IF_STMT
- FOR_EACH (it, wco.checkedNullVars)
+ FOR_EACH (it, wco.checkedThenNullVars)
{
wo.removeNullVarsAll.insert(it);
wo.knownNonNullVars.insert(it);
@@ -148,7 +148,7 @@ void analyseCondition(Node *node,
}
if (wco.cleanExpr)
{
- FOR_EACH (it, wco.checkedNonNullVars)
+ FOR_EACH (it, wco.checkedThenNonNullVars)
{
wo.knownNullVars.insert(it);
}
@@ -157,7 +157,7 @@ void analyseCondition(Node *node,
if (wo3.isReturned)
{
// add variable for ignore for all parent nodes except special like IF_STMT
- FOR_EACH (it, wco.checkedNonNullVars)
+ FOR_EACH (it, wco.checkedThenNonNullVars)
{
wo.removeNullVarsAll.insert(it);
wo.knownNonNullVars.insert(it);
@@ -165,7 +165,7 @@ void analyseCondition(Node *node,
}
if (wco.cleanExpr)
{
- FOR_EACH (it, wco.checkedNullVars)
+ FOR_EACH (it, wco.checkedThenNullVars)
{
wo.knownNullVars.insert(it);
}
diff --git a/src/analysis/walkitem.h b/src/analysis/walkitem.h
index c5bcb5a..60bd30d 100644
--- a/src/analysis/walkitem.h
+++ b/src/analysis/walkitem.h
@@ -38,8 +38,8 @@ struct WalkItem
removeNullVarsAll(),
removeNullVars(),
addNullVars(),
- checkedNullVars(),
- checkedNonNullVars(),
+ checkedThenNullVars(),
+ checkedThenNonNullVars(),
linkedVars(),
linkedReverseVars(),
stopWalking(false),
@@ -57,8 +57,8 @@ struct WalkItem
removeNullVarsAll(item.removeNullVarsAll),
removeNullVars(item.removeNullVars),
addNullVars(item.addNullVars),
- checkedNullVars(item.checkedNullVars),
- checkedNonNullVars(item.checkedNonNullVars),
+ checkedThenNullVars(item.checkedThenNullVars),
+ checkedThenNonNullVars(item.checkedThenNonNullVars),
linkedVars(item.linkedVars),
linkedReverseVars(item.linkedReverseVars),
stopWalking(item.stopWalking),
@@ -75,8 +75,8 @@ struct WalkItem
StringSet removeNullVarsAll; // need remove vars from parent checkNullVars with linked vars
StringSet removeNullVars; // need remove vars from parent checkNullVars without linked vars
StringSet addNullVars; // need add vars to parent checkNullVars
- StringSet checkedNullVars; // vars checked for null in expressions
- StringSet checkedNonNullVars; // vars checked for nonnull in expressions
+ StringSet checkedThenNullVars; // vars checked for null in expressions
+ StringSet checkedThenNonNullVars; // vars checked for nonnull in expressions
StringMapSet linkedVars; // linked vars. map <parent, set(vars)>
StringMap linkedReverseVars; // linked vars. map <child, parent>
bool stopWalking; // stop walking on tree after this node
diff --git a/src/logger.cpp b/src/logger.cpp
index 1667832..93e4140 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -206,7 +206,8 @@ void dumpWI(Node *const node,
const std::string &name,
const WalkItem &wi)
{
- //return;
+ if (name != "wco " && (node->parent || node != FUNCTION_DECL || name != "analyseNode wi in "))
+ return;
Log::log("%s%s%s %s",
node->getIndent().c_str(),
name.c_str(),
@@ -218,8 +219,8 @@ void dumpWI(Node *const node,
Log::log(" useless");
if (wi.isReturned)
Log::log(" returned");
- dumpWIProps(" checkedNullVars:", wi.checkedNullVars)
- dumpWIProps(" checkedNonNullVars:", wi.checkedNonNullVars)
+ dumpWIProps(" checkedThenNullVars:", wi.checkedThenNullVars)
+ dumpWIProps(" checkedThenNonNullVars:", wi.checkedThenNonNullVars)
dumpWIProps(" needCheckNullVars:", wi.needCheckNullVars)
dumpWIProps(" knownVars:", wi.knownVars)
dumpWIProps(" knownNullVars:", wi.knownNullVars)