From 2ee286efb48718132a6fbbb78964400c3fa22751 Mon Sep 17 00:00:00 2001 From: "R. Timothy Edwards" Date: Fri, 7 Nov 2025 14:06:22 -0500 Subject: [PATCH] Corrected the pin permutation check for pin matching; previously, this was not doing the correct cross-check, instead looking in the same netlist for the permutable pin and checking its node number, which is useless since the node number is the same by definition for permutable pins. This error would result in occasional false negative results during pin matching, showing matching where pins are actually not matched. --- VERSION | 2 +- base/netcmp.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index e9d57bc..4e3f7d9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.305 +1.5.306 diff --git a/base/netcmp.c b/base/netcmp.c index d025b19..8f0d859 100644 --- a/base/netcmp.c +++ b/base/netcmp.c @@ -8009,21 +8009,21 @@ int MatchPins(struct nlist *tc1, struct nlist *tc2, int dolist) */ for (permute1 = tc1->permutes; permute1; permute1 = permute1->next) { if ((*matchfunc)(ob1->name, permute1->pin1)) { - ob1a = LookupObject(permute1->pin1, tc1); + ob2a = LookupObject(permute1->pin2, tc2); break; } else if ((*matchfunc)(ob1->name, permute1->pin2)) { - ob1a = LookupObject(permute1->pin2, tc1); + ob2a = LookupObject(permute1->pin1, tc2); break; } } for (permute2 = tc2->permutes; permute2; permute2 = permute2->next) { if ((*matchfunc)(ob2->name, permute2->pin1)) { - ob2a = LookupObject(permute2->pin1, tc2); + ob1a = LookupObject(permute2->pin2, tc1); break; } else if ((*matchfunc)(ob2->name, permute2->pin2)) { - ob2a = LookupObject(permute2->pin2, tc2); + ob1a = LookupObject(permute2->pin1, tc1); break; } }