summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-23 19:47:08 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-23 19:47:08 +0300
commit69e9e905de9dd9fb5c28abb5013945bba03e9dbb (patch)
tree6897b769af7fd15d041192cda25d47820fcb2f57 /src/analysis/analysis.cpp
parent8aa42b625d7fd34d22df6690e5b305b5be525eea (diff)
downloadparanucker-69e9e905de9dd9fb5c28abb5013945bba03e9dbb.tar.gz
paranucker-69e9e905de9dd9fb5c28abb5013945bba03e9dbb.tar.bz2
paranucker-69e9e905de9dd9fb5c28abb5013945bba03e9dbb.tar.xz
paranucker-69e9e905de9dd9fb5c28abb5013945bba03e9dbb.zip
Fix false positive for ADDR_EXPR node.
Ignored example: arr.push_back(ptr);
Diffstat (limited to 'src/analysis/analysis.cpp')
-rw-r--r--src/analysis/analysis.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index 6d57274..3cd7215 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -227,6 +227,15 @@ Node *skipNop(Node *node)
return node;
}
+Node *skipBackNop(Node *node)
+{
+ while (node && node->nodeType == NOP_EXPR)
+ {
+ node = node->parent;
+ }
+ return node;
+}
+
void mergeNullChecked(WalkItem &wi1, WalkItem &wi2)
{
wi1.checkedNullVars.insert(wi2.checkedNullVars.begin(),