diff --git a/graph/Graph.cc b/graph/Graph.cc index 942e1951..03100b05 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -418,6 +418,8 @@ Graph::makePinVertices(Pin *pin, Vertex *&vertex, Vertex *&bidir_drvr_vertex) { + vertex = nullptr; + bidir_drvr_vertex = nullptr; PortDirection *dir = network_->direction(pin); if (!dir->isPowerGround()) { bool is_reg_clk = network_->isRegClkPin(pin); @@ -427,8 +429,6 @@ Graph::makePinVertices(Pin *pin, bidir_drvr_vertex = makeVertex(pin, true, is_reg_clk); pin_bidirect_drvr_vertex_map_[pin] = bidir_drvr_vertex; } - else - bidir_drvr_vertex = nullptr; } } diff --git a/search/Sta.cc b/search/Sta.cc index 61f9a274..f7e650a6 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -4493,6 +4493,10 @@ Sta::makeInstanceAfter(const Instance *inst) if (pin) { Vertex *vertex, *bidir_drvr_vertex; graph_->makePinVertices(pin, vertex, bidir_drvr_vertex); + if (vertex) + search_->endpointInvalid(vertex); + if (bidir_drvr_vertex) + search_->endpointInvalid(bidir_drvr_vertex); } } graph_->makeInstanceEdges(inst); diff --git a/test/asap7_small.lib.gz b/test/asap7_small.lib.gz index f0381ded..95f614d2 100644 Binary files a/test/asap7_small.lib.gz and b/test/asap7_small.lib.gz differ