diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-19 23:28:36 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-20 00:05:36 +0300 |
commit | a23225d54465bcd6e9d3805709aaec616f85903a (patch) | |
tree | 011aada003f477684fcd0299bfb412f1bd3ebb27 /src/analysis/collections.cpp | |
parent | 4307905ef2ea753cb080b12c9a3ca70be22f40e5 (diff) | |
download | paranucker-a23225d54465bcd6e9d3805709aaec616f85903a.tar.gz paranucker-a23225d54465bcd6e9d3805709aaec616f85903a.tar.bz2 paranucker-a23225d54465bcd6e9d3805709aaec616f85903a.tar.xz paranucker-a23225d54465bcd6e9d3805709aaec616f85903a.zip |
If in if/while body changed any variable, outside of body it removed from known null vars.
Diffstat (limited to 'src/analysis/collections.cpp')
-rw-r--r-- | src/analysis/collections.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/analysis/collections.cpp b/src/analysis/collections.cpp index b7acf6d..e9acce6 100644 --- a/src/analysis/collections.cpp +++ b/src/analysis/collections.cpp @@ -58,6 +58,17 @@ void addNeedCheckNullVars2(WalkItem &wi, WalkItem &wo) } } +void removeKnownNullVars2(WalkItem &wi, WalkItem &wo) +{ + FOR_EACH (it, wo.knownNullVars) + { + if (isNotIn(it, wi.knownNullVars)) + { + wo.knownNullVars.erase(it); + } + } +} + void removeNeedCheckNullVars2(WalkItem &wco, WalkItem &wi, WalkItem &wo) { FOR_EACH (it, wi.knownNonNullVars) |