mirror of https://github.com/YosysHQ/yosys.git
fix width of post-increment/decrement expressions
This commit is contained in:
parent
7d07615dee
commit
28e99f2b8c
|
@ -325,7 +325,7 @@ static AstNode *addIncOrDecExpr(AstNode *lhs, dict<IdString, AstNode*> *attr, AS
|
|||
log_assert(stmt->type == AST_ASSIGN_EQ);
|
||||
AstNode *expr = stmt->children[0]->clone();
|
||||
if (undo) {
|
||||
AstNode *minus_one = AstNode::mkconst_int(-1, true);
|
||||
AstNode *minus_one = AstNode::mkconst_int(-1, true, 1);
|
||||
expr = new AstNode(op, expr, minus_one);
|
||||
}
|
||||
SET_AST_NODE_LOC(expr, begin, end);
|
||||
|
|
|
@ -56,5 +56,18 @@ module top;
|
|||
check(96, 200, 24);
|
||||
y = (z >>= 1'sb1) * 2; // shift is implicitly cast to unsigned
|
||||
check(96, 24, 12);
|
||||
|
||||
// check width of post-increment expressions
|
||||
z = (y = 0);
|
||||
begin
|
||||
byte w;
|
||||
w = 0;
|
||||
x = {1'b1, ++w};
|
||||
check(257, 0, 0);
|
||||
assert (w == 1);
|
||||
x = {2'b10, w++};
|
||||
check(513, 0, 0);
|
||||
assert (w == 2);
|
||||
end
|
||||
end
|
||||
endmodule
|
||||
|
|
Loading…
Reference in New Issue