Fixed handling of "input foo; reg [0:0] foo;"

This commit is contained in:
Clifford Wolf 2015-01-15 12:53:12 +01:00
parent 8e8e791fb5
commit a588a4a5c9
1 changed files with 7 additions and 0 deletions

View File

@ -186,6 +186,13 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
AstNode *first_node = this_wire_scope[node->str]; AstNode *first_node = this_wire_scope[node->str];
if (!node->is_input && !node->is_output && node->is_reg && node->children.size() == 0) if (!node->is_input && !node->is_output && node->is_reg && node->children.size() == 0)
goto wires_are_compatible; goto wires_are_compatible;
if (first_node->children.size() == 0 && node->children.size() == 1 && node->children[0]->type == AST_RANGE) {
AstNode *r = node->children[0];
if (r->range_valid && r->range_left == 0 && r->range_right == 0) {
delete r;
node->children.pop_back();
}
}
if (first_node->children.size() != node->children.size()) if (first_node->children.size() != node->children.size())
goto wires_are_incompatible; goto wires_are_incompatible;
for (size_t j = 0; j < node->children.size(); j++) { for (size_t j = 0; j < node->children.size(); j++) {