Fix invalid accesses during certain IO packing cases

This commit is contained in:
gatecat 2023-04-25 15:58:28 +02:00 committed by myrtle
parent 582cd526ac
commit 655aee1f9d

View File

@ -539,11 +539,13 @@ class MachXO2Packer
if (ionet != nullptr) { if (ionet != nullptr) {
ctx->nets.erase(ionet->name); ctx->nets.erase(ionet->name);
tp.cell->ports.at(tp.port).net = nullptr; tp.cell->ports.at(tp.port).net = nullptr;
ci->ports.at(ci->type == ctx->id("$nextpnr_obuf") ? id_I : id_O).net = nullptr;
} }
if (ci->type == ctx->id("$nextpnr_iobuf")) { if (ci->type == ctx->id("$nextpnr_iobuf")) {
NetInfo *net2 = ci->ports.at(id_I).net; NetInfo *net2 = ci->ports.at(id_I).net;
if (net2 != nullptr) { if (net2 != nullptr) {
ctx->nets.erase(net2->name); ctx->nets.erase(net2->name);
ci->ports.at(id_I).net = nullptr;
} }
} }
} else { } else {