Fixed generate-for (and disabled double warning for auto-wire)
authorClifford Wolf <clifford@clifford.at>
Wed, 4 Dec 2013 20:33:00 +0000 (21:33 +0100)
committerClifford Wolf <clifford@clifford.at>
Wed, 4 Dec 2013 20:33:00 +0000 (21:33 +0100)
frontends/ast/simplify.cc

index 94b588f257a26e5e61448237ce4dfd589841acb8..3d512d6f0b554784c7716cff35b03b4ce6c3daa9 100644 (file)
@@ -513,7 +513,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
                        }
                }
                if (current_scope.count(str) == 0) {
-                       log("Warning: Creating auto-wire `%s' in module `%s'.\n", str.c_str(), current_ast_mod->str.c_str());
+                       // log("Warning: Creating auto-wire `%s' in module `%s'.\n", str.c_str(), current_ast_mod->str.c_str());
                        AstNode *auto_wire = new AstNode(AST_AUTOWIRE);
                        auto_wire->str = str;
                        current_ast_mod->children.push_back(auto_wire);
@@ -580,6 +580,10 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
                AstNode *next_ast = children[2];
                AstNode *body_ast = children[3];
 
+               while (body_ast->type == AST_GENBLOCK && body_ast->str.empty() &&
+                               body_ast->children.size() == 1 && body_ast->children.at(0)->type == AST_GENBLOCK)
+                       body_ast = body_ast->children.at(0);
+
                if (init_ast->type != AST_ASSIGN_EQ)
                        log_error("Unsupported 1st expression of generate for-loop at %s:%d!\n", filename.c_str(), linenum);
                if (next_ast->type != AST_ASSIGN_EQ)