summaryrefslogtreecommitdiff
path: root/src/analysis/expression.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-23 03:03:43 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-23 03:03:43 +0300
commit25d65c8c744e01909ec279e512c5f2a3f7b601a1 (patch)
treeda0dc3d10a35f80d6fd36c6d06f9c54a61b3a42f /src/analysis/expression.cpp
parent25aea8acd5ba7aa87c88b7b16a146c667096bf62 (diff)
downloadparanucker-25d65c8c744e01909ec279e512c5f2a3f7b601a1.tar.gz
paranucker-25d65c8c744e01909ec279e512c5f2a3f7b601a1.tar.bz2
paranucker-25d65c8c744e01909ec279e512c5f2a3f7b601a1.tar.xz
paranucker-25d65c8c744e01909ec279e512c5f2a3f7b601a1.zip
Fix some issues in TRUTH_ANDIF_EXPR analysis.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r--src/analysis/expression.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 621be38..7d80afc 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -208,7 +208,13 @@ void analyseTruthAndIfExpr(TruthAndIfExprNode *node, const WalkItem &wi, WalkIte
if (!wo1.uselessExpr && !wo2.uselessExpr)
{ // need combine wo1 and wo2
intersectNullChecked(wo, wo1, wo2);
+ }
+ if (!wo1.uselessExpr)
+ {
mergeNonNullChecked(wo, wo1);
+ }
+ if (!wo2.uselessExpr)
+ {
mergeNonNullChecked(wo, wo2);
}
wo.cleanExpr = wo1.cleanExpr && wo2.cleanExpr;