diff options
author | Marcus Comstedt <marcus@mc.pp.se> | 2015-11-08 19:16:56 +0100 |
---|---|---|
committer | Marcus Comstedt <marcus@mc.pp.se> | 2015-11-08 19:16:56 +0100 |
commit | 8c2bdef36dbdb5b830757a4f74a7600b45828698 (patch) | |
tree | 24ff88378d93bba90017406845c6e91010cbb2de | |
parent | 1ec6429bad4d793b389ee594b1cb2575bf73ddaf (diff) | |
download | yosys-8c2bdef36dbdb5b830757a4f74a7600b45828698.tar.gz yosys-8c2bdef36dbdb5b830757a4f74a7600b45828698.tar.bz2 yosys-8c2bdef36dbdb5b830757a4f74a7600b45828698.zip |
Fix a segfault in dffinit when the value has too few bits
The code was already trying to add the required number of bits, but
fell one short of the mark.
-rw-r--r-- | passes/techmap/dffinit.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/passes/techmap/dffinit.cc b/passes/techmap/dffinit.cc index 6a80f043b..e0273f439 100644 --- a/passes/techmap/dffinit.cc +++ b/passes/techmap/dffinit.cc @@ -100,7 +100,7 @@ struct DffinitPass : public Pass { for (int i = 0; i < GetSize(sig); i++) { if (init_bits.count(sig[i]) == 0) continue; - while (GetSize(value.bits) < i) + while (GetSize(value.bits) <= i) value.bits.push_back(State::S0); value.bits[i] = init_bits.at(sig[i]); cleanup_bits.insert(sig[i]); |