Merge pull request #1029 from airskywater/airskywater-patch-1

Fix runtime segmentation fault
This commit is contained in:
myrtle 2022-09-24 10:30:30 +02:00 committed by GitHub
commit f0f9070adb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -299,7 +299,10 @@ void TimingAnalyser::identify_related_domains()
std::function<void(const NetInfo *, dict<IdString, delay_t> &, delay_t)> find_net_drivers = std::function<void(const NetInfo *, dict<IdString, delay_t> &, delay_t)> find_net_drivers =
[&](const NetInfo *ni, dict<IdString, delay_t> &drivers, delay_t delay_acc) { [&](const NetInfo *ni, dict<IdString, delay_t> &drivers, delay_t delay_acc) {
// Get driving cell and port // Get driving cell and port
if (ni == nullptr) return;
const CellInfo *cell = ni->driver.cell; const CellInfo *cell = ni->driver.cell;
if (cell == nullptr) return;
const IdString port = ni->driver.port; const IdString port = ni->driver.port;
bool didGoUpstream = false; bool didGoUpstream = false;
@ -360,6 +363,9 @@ void TimingAnalyser::identify_related_domains()
for (const auto &domain : domains) { for (const auto &domain : domains) {
const NetInfo *ni = ctx->nets.at(domain.key.clock).get(); const NetInfo *ni = ctx->nets.at(domain.key.clock).get();
if (ni == nullptr) continue;
if (ni->driver.cell == nullptr) continue;
dict<IdString, delay_t> drivers; dict<IdString, delay_t> drivers;
find_net_drivers(ni, drivers, 0); find_net_drivers(ni, drivers, 0);