summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-20 20:56:34 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-20 20:56:34 +0300
commit55b526b5957de07cea7f89e345fda0277266e485 (patch)
tree0f8640b5881a7aba45192f5bf5f8c11d14964594 /src/analysis/analysis.h
parent084f9fd98fffc2590ccd77b454f1117f5c3c6cdb (diff)
downloadparanucker-55b526b5957de07cea7f89e345fda0277266e485.tar.gz
paranucker-55b526b5957de07cea7f89e345fda0277266e485.tar.bz2
paranucker-55b526b5957de07cea7f89e345fda0277266e485.tar.xz
paranucker-55b526b5957de07cea7f89e345fda0277266e485.zip
Add support for ignore already checked vars in complex expressions.
Example: if (a && a->b) if (!a || a->b)
Diffstat (limited to 'src/analysis/analysis.h')
-rw-r--r--src/analysis/analysis.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/analysis/analysis.h b/src/analysis/analysis.h
index f404352..4d921cb 100644
--- a/src/analysis/analysis.h
+++ b/src/analysis/analysis.h
@@ -22,6 +22,9 @@
#include "includes.h"
+#include <set>
+#include <string>
+
struct Node;
struct WalkItem;
@@ -41,6 +44,9 @@ namespace Analysis
void removeCheckNullVars(WalkItem &wi);
+ void removeCheckNullVarsSet(WalkItem &wi,
+ std::set<std::string> &vars);
+
Node *skipNop(Node *node);
void mergeNullChecked(WalkItem &wi1, WalkItem &wi2);