summaryrefslogtreecommitdiff
path: root/frontends/ast
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-25 18:23:53 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-25 18:23:53 +0200
commit26cbe4a4e56c0b95483b7568914d0402ef955b72 (patch)
treeeccbe1c5c44bae437c1c27bd03b54a4c8a22b22f /frontends/ast
parentc5eb5e56b8911bb520a987761739bbb9d9328380 (diff)
Fixed constant "cond ? string1 : string2" with strings of different size
Diffstat (limited to 'frontends/ast')
-rw-r--r--frontends/ast/ast.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc
index 7a7bd303..56ea64ef 100644
--- a/frontends/ast/ast.cc
+++ b/frontends/ast/ast.cc
@@ -706,6 +706,8 @@ AstNode *AstNode::mkconst_bits(const std::vector<RTLIL::State> &v, bool is_signe
AstNode *AstNode::mkconst_str(const std::vector<RTLIL::State> &v)
{
AstNode *node = mkconst_str(RTLIL::Const(v).decode_string());
+ while (GetSize(node->bits) < GetSize(v))
+ node->bits.push_back(RTLIL::State::S0);
log_assert(node->bits == v);
return node;
}