From: Clifford Wolf Date: Mon, 4 Nov 2013 20:29:36 +0000 (+0100) Subject: Another fix for early width and sign detection in ast simplifier X-Git-Tag: yosys-0.2.0~410 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f2786df1468c10ab9b845787b0b16732e26e9556;p=yosys.git Another fix for early width and sign detection in ast simplifier --- diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 643855d08..81812a40f 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -191,8 +191,9 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage, case AST_ASSIGN: while (children[0]->simplify(false, false, true, stage, -1, false) == true) { } while (children[1]->simplify(false, false, false, stage, -1, false) == true) { } - children[0]->detectSignWidth(width_hint, backup_sign_hint); - children[1]->detectSignWidth(backup_width_hint, sign_hint); + children[0]->detectSignWidth(backup_width_hint, backup_sign_hint); + children[1]->detectSignWidth(width_hint, sign_hint); + width_hint = std::max(width_hint, backup_width_hint); child_0_is_self_determined = true; break;