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 /passes/techmap | |
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.
Diffstat (limited to 'passes/techmap')
-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]); |