summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-01 23:39:28 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-01 23:39:28 +0300
commitafa77a9891729b904a5e3323ab0030c9efb042af (patch)
treec01d7d4b8e2b0898a1c9accdf8bc0e6eae07726e /src/analysis/analysis.cpp
parent012416297ee90f324f23d59accf5d59736d57c23 (diff)
downloadparanucker-afa77a9891729b904a5e3323ab0030c9efb042af.tar.gz
paranucker-afa77a9891729b904a5e3323ab0030c9efb042af.tar.bz2
paranucker-afa77a9891729b904a5e3323ab0030c9efb042af.tar.xz
paranucker-afa77a9891729b904a5e3323ab0030c9efb042af.zip
Some fixes for known vars collections.
Diffstat (limited to 'src/analysis/analysis.cpp')
-rw-r--r--src/analysis/analysis.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index 3433554..de4fec3 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -112,9 +112,9 @@ void walkTree(Node *node, const WalkItem &wi, WalkItem &wo)
wi2.addNullVars = wo2.addNullVars;
addNeedCheckNullVars(wi2, wi2);
wo2.needCheckNullVars = wi2.needCheckNullVars;
- wo2.knownVars = wi2.knownVars;
- wo2.knownNullVars = wi2.knownNullVars;
- wo2.knownNonNullVars = wi2.knownNonNullVars;
+ wi2.knownVars = wo2.knownVars;
+ wi2.knownNullVars = wo2.knownNullVars;
+ wi2.knownNonNullVars = wo2.knownNonNullVars;
wi2.isReturned = wi2.isReturned || wo2.isReturned;
wi2.linkedVars = wo2.linkedVars;
wi2.linkedReverseVars = wo2.linkedReverseVars;
@@ -127,6 +127,9 @@ void walkTree(Node *node, const WalkItem &wi, WalkItem &wo)
wo.isReturned = wo.isReturned || isReturned || wo2.isReturned;
wo.linkedVars = wi2.linkedVars;
wo.linkedReverseVars = wi2.linkedReverseVars;
+ wo.knownVars = wo2.knownVars;
+ wo.knownNullVars = wo2.knownNullVars;
+ wo.knownNonNullVars = wo2.knownNonNullVars;
if (command != Command::DumpNullPointers)
Log::dumpWI(node, "walkTree out wo ", wo);