diff --git a/kernel/fstdata.cc b/kernel/fstdata.cc index 5244a0395..42f2f76e0 100644 --- a/kernel/fstdata.cc +++ b/kernel/fstdata.cc @@ -236,6 +236,9 @@ void FstData::extractVarNames() int array_index = std::stoi(index_str); array_indices.push_back(array_index); } + } else { + log_warning("Error parsing array index in : %s\n", full_name.c_str()); + break; } // Move to next opening bracket diff --git a/passes/sat/sim.cc b/passes/sat/sim.cc index d6d2de649..d0c6d8748 100644 --- a/passes/sat/sim.cc +++ b/passes/sat/sim.cc @@ -257,19 +257,19 @@ struct SimInstance // Concatenates values from array elements in descending index order bool setStateFromArrayHandles(Wire* wire, dict, fstHandle>& handles) { - // Collect and sort indices in descending row-major orde - std::vector, fstHandle>> sorted_elements; - for (auto &kv : handles) { - sorted_elements.push_back({kv.first, kv.second}); - } + // Collect and sort indices in descending row-major order + std::vector, fstHandle>> sorted_elements; + for (auto &kv : handles) { + sorted_elements.push_back({kv.first, kv.second}); + } std::sort(sorted_elements.begin(), sorted_elements.end(), std::greater<>()); - + // Concatenate values in descending index order - std::string concatenated = ""; - for (auto &elem : sorted_elements) { - concatenated += shared->fst->valueOf(elem.second); - } - return set_state(wire, Const::from_string(concatenated)); + std::string concatenated = ""; + for (auto &elem : sorted_elements) { + concatenated += shared->fst->valueOf(elem.second); + } + return set_state(wire, Const::from_string(concatenated)); } SimInstance(SimShared *shared, std::string scope, Module *module, Cell *instance = nullptr, SimInstance *parent = nullptr) :