summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-08 00:34:52 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-08 14:09:58 +0300
commit4403372a6292fcfeff4d29383e0fc964abaeb592 (patch)
treece546f534f60e5c7d1c7dd975159484ba63a415f /src/analysis/analysis.cpp
parentc493b9059f0289585c7aa7c2be71ec7fd5aa9116 (diff)
downloadparanucker-4403372a6292fcfeff4d29383e0fc964abaeb592.tar.gz
paranucker-4403372a6292fcfeff4d29383e0fc964abaeb592.tar.bz2
paranucker-4403372a6292fcfeff4d29383e0fc964abaeb592.tar.xz
paranucker-4403372a6292fcfeff4d29383e0fc964abaeb592.zip
Add WHILE_STMT node analysis.
This add basic support for while(exprt) {code}
Diffstat (limited to 'src/analysis/analysis.cpp')
-rw-r--r--src/analysis/analysis.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index de4fec3..70905e6 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -56,6 +56,7 @@
#include "nodes/ref/component_ref.h"
#include "nodes/stmt/if_stmt.h"
+#include "nodes/stmt/while_stmt.h"
#include "localconsts.h"
@@ -198,7 +199,7 @@ void analyseNode(Node *node, const WalkItem &wi, WalkItem &wo)
// remove check for vars what was requested from some childs.
// Except IF_STMT. Removing handled inside analyse function.
- if (node != IF_STMT)
+ if (node != IF_STMT && node != WHILE_STMT)
{
removeNeedCheckNullVarsSetAll(wi2, wi2.removeNullVarsAll);
}
@@ -276,6 +277,9 @@ void analyseNode(Node *node, const WalkItem &wi, WalkItem &wo)
case IF_STMT:
analyseIfStmt(static_cast<IfStmtNode*>(node), wi2, wo);
break;
+ case WHILE_STMT:
+ analyseWhileStmt(static_cast<WhileStmtNode*>(node), wi2, wo);
+ break;
case COMPONENT_REF:
analyseComponentRef(static_cast<ComponentRefNode*>(node), wi2, wo);
break;