diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-01 23:39:28 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-01 23:39:28 +0300 |
commit | afa77a9891729b904a5e3323ab0030c9efb042af (patch) | |
tree | c01d7d4b8e2b0898a1c9accdf8bc0e6eae07726e /src/analysis/analysis.cpp | |
parent | 012416297ee90f324f23d59accf5d59736d57c23 (diff) | |
download | paranucker-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.cpp | 9 |
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); |