summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-24 21:20:02 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-24 21:20:02 +0300
commit848ae28c0ba53343e40092a1ffd241c412739b8c (patch)
tree530ffca114a44c9a659ff9a3c3f1c2b77d4af7c8 /src
parent6dbd708914bee5b1b1ca9922e733196eaeec80c8 (diff)
downloadparanucker-848ae28c0ba53343e40092a1ffd241c412739b8c.tar.gz
paranucker-848ae28c0ba53343e40092a1ffd241c412739b8c.tar.bz2
paranucker-848ae28c0ba53343e40092a1ffd241c412739b8c.tar.xz
paranucker-848ae28c0ba53343e40092a1ffd241c412739b8c.zip
Add detection for some calls to new operator.
Diffstat (limited to 'src')
-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 db70da6..57263d3 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -1000,6 +1000,12 @@ bool handleSetVarToFunction(const std::string &var,
comp = static_cast<CompoundExprNode*>(node2);
if (comp->args.empty())
return handleSetVarToFunctionBack(var, node2, wo);
+ if(comp->args.size() > 1 &&
+ skipNop(comp->args[0]) == TARGET_EXPR &&
+ skipNop(comp->args[1]) == COMPOUND_EXPR)
+ {
+ comp = static_cast<CompoundExprNode*>(skipNop(comp->args[1]));
+ }
if (skipNop(comp->args[0]) == TRY_CATCH_EXPR)
{
TryCatchExprNode *tryCatch = static_cast<TryCatchExprNode*>(skipNop(comp->args[0]));