aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/ast/simplify.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-08-08 11:40:09 +0100
committerDavid Shah <dave@ds0.me>2019-08-08 11:40:09 +0100
commit83b2e0272333cfcc2529e0833723a52c066146a6 (patch)
tree9985b7f840383419ebd5b189023ca6871a02d5a9 /frontends/ast/simplify.cc
parentb8cd4ad64ae9a45faecffc1a6b92a8219755bc60 (diff)
parentfb568ddb4e2ccaab352d9d062f6b4926aca75680 (diff)
downloadyosys-83b2e0272333cfcc2529e0833723a52c066146a6.tar.gz
yosys-83b2e0272333cfcc2529e0833723a52c066146a6.tar.bz2
yosys-83b2e0272333cfcc2529e0833723a52c066146a6.zip
Merge branch 'xc7dsp' of github.com:YosysHQ/yosys into xc7dsp
Diffstat (limited to 'frontends/ast/simplify.cc')
-rw-r--r--frontends/ast/simplify.cc17
1 files changed, 2 insertions, 15 deletions
diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index e947125bf..6fb94d80b 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -3439,19 +3439,11 @@ AstNode *AstNode::eval_const_function(AstNode *fcall)
{
std::map<std::string, AstNode*> backup_scope;
std::map<std::string, AstNode::varinfo_t> variables;
- bool delete_temp_block = false;
- AstNode *block = NULL;
+ AstNode *block = new AstNode(AST_BLOCK);
size_t argidx = 0;
for (auto child : children)
{
- if (child->type == AST_BLOCK)
- {
- log_assert(block == NULL);
- block = child;
- continue;
- }
-
if (child->type == AST_WIRE)
{
while (child->simplify(true, false, false, 1, -1, false, true)) { }
@@ -3468,13 +3460,9 @@ AstNode *AstNode::eval_const_function(AstNode *fcall)
continue;
}
- log_assert(block == NULL);
- delete_temp_block = true;
- block = new AstNode(AST_BLOCK);
block->children.push_back(child->clone());
}
- log_assert(block != NULL);
log_assert(variables.count(str) != 0);
while (!block->children.empty())
@@ -3642,8 +3630,7 @@ AstNode *AstNode::eval_const_function(AstNode *fcall)
log_abort();
}
- if (delete_temp_block)
- delete block;
+ delete block;
for (auto &it : backup_scope)
if (it.second == NULL)