Encountered a crash condition caused by the "equiv" statement, for

circuits with nets having multiple conflicting labels, depending
on where the "equiv" statement occurs in the .ext file output.
Corrected the error but am still puzzled as to why this has never
shown up before, as it does not appear to be the result of any
recent development work.
This commit is contained in:
Tim Edwards 2021-03-16 20:31:29 -04:00
parent 7757384355
commit 010c0599bd
1 changed files with 8 additions and 0 deletions

View File

@ -486,6 +486,14 @@ efBuildEquiv(def, nodeName1, nodeName2)
efNodeMerge(&nn1->efnn_node, &nn2->efnn_node); efNodeMerge(&nn1->efnn_node, &nn2->efnn_node);
if (nn1->efnn_port > 0) nn2->efnn_port = nn1->efnn_port; if (nn1->efnn_port > 0) nn2->efnn_port = nn1->efnn_port;
else if (nn2->efnn_port > 0) nn1->efnn_port = nn2->efnn_port; else if (nn2->efnn_port > 0) nn1->efnn_port = nn2->efnn_port;
/* If a node has been merged away, make sure that its name */
/* points to the merged name's hash. */
if (nn1->efnn_node == NULL)
HashSetValue(he1, (char *)nn2);
else if (nn2->efnn_node == NULL)
HashSetValue(he2, (char *)nn1);
} }
return; return;
} }