diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-20 00:54:39 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-20 00:54:39 +0300 |
commit | c7852c4ae3c74cb12fb8ac8415430b486fe77492 (patch) | |
tree | cc7cb78b0c240e1756b8980b4e8c95f1eec85fab /src | |
parent | 0bee72a563eeecc365b7b3d4fda9f9adff83244b (diff) | |
download | paranucker-c7852c4ae3c74cb12fb8ac8415430b486fe77492.tar.gz paranucker-c7852c4ae3c74cb12fb8ac8415430b486fe77492.tar.bz2 paranucker-c7852c4ae3c74cb12fb8ac8415430b486fe77492.tar.xz paranucker-c7852c4ae3c74cb12fb8ac8415430b486fe77492.zip |
Detect what variable is null after if with both branches set variable to null value.
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/statement.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp index f405c2c..e22cdae 100644 --- a/src/analysis/statement.cpp +++ b/src/analysis/statement.cpp @@ -170,6 +170,14 @@ void analyseCondition(Node *node, addNonNullVar(wo, it); } } + FOR_EACH (it, wo2.knownNullVars) + { + if (isIn(it, wo3.knownNullVars) && + isNotIn(it, wo.knownNullVars)) + { + addNullVar(wo, it); + } + } } wo.isReturned = false; |