summaryrefslogtreecommitdiff
path: root/src/plugin.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-12 15:32:47 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-12 15:32:47 +0300
commit262b4954b017427c486db0833966e609fe790fe1 (patch)
treee281e0c0eb2c9a7aabc67773689fbc8c622aa36c /src/plugin.cpp
parente9e895f8ae0fc51620c6e6da7f6b67ca0c9e1bde (diff)
downloadparanucker-262b4954b017427c486db0833966e609fe790fe1.tar.gz
paranucker-262b4954b017427c486db0833966e609fe790fe1.tar.bz2
paranucker-262b4954b017427c486db0833966e609fe790fe1.tar.xz
paranucker-262b4954b017427c486db0833966e609fe790fe1.zip
Add way to avoid resursion in var_decl.
Update incomplete nodes after whole tree parsed.
Diffstat (limited to 'src/plugin.cpp')
-rw-r--r--src/plugin.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugin.cpp b/src/plugin.cpp
index 71f195b..5d29d66 100644
--- a/src/plugin.cpp
+++ b/src/plugin.cpp
@@ -28,6 +28,8 @@
#include "parsers/generic.h"
+#include <map>
+
#include "localconsts.h"
int plugin_is_GPL_compatible = 1;
@@ -35,6 +37,8 @@ int plugin_is_GPL_compatible = 1;
struct Node;
Command command = Command::Dump;
+std::map<tree, Node*> foundNodesMap;
+std::map<Node*, Node*> updateNodesMap;
static void pre_generic(void *gcc_data,
void *user_data A_UNUSED)
@@ -44,6 +48,7 @@ static void pre_generic(void *gcc_data,
command == Command::DetectNullPointers ||
command == Command::DumpNullPointers)
{
+ Generic::updateNodes();
Analysis::startWalkTree(node);
}
Generic::cleanAllNodes(node);