Fixed an error with LEF read where duplicate macros are encountered

in the input.  The name of one was being modified but was being
right-justified into the string, resulting in a name starting with
many space characters.  Also:  Fixed an issue with extresist where
a label that ends up with an empty string can become a node with
an empty string name in the .res.ext file output.
This commit is contained in:
Tim Edwards 2022-12-09 17:31:47 -05:00
parent 02bbb1064e
commit 11ddd559b2
3 changed files with 6 additions and 2 deletions

View File

@ -1 +1 @@
8.3.349
8.3.350

View File

@ -2028,7 +2028,7 @@ LefReadMacro(f, mname, oscale, importForeign, doAnnotate, lefTimestamp)
for (suffix = 1; HashGetValue(he) != NULL; suffix++)
{
sprintf(newname, "%250s_%d", mname, suffix);
snprintf(newname, 255, "%s_%d", mname, suffix);
he = HashFind(&lefDefInitHash, newname);
}
LefError(LEF_WARNING, "Cell \"%s\" was already defined in this file. "

View File

@ -282,6 +282,10 @@ ResMakeLabelBreakpoints(def, goodies)
for (slab = def->cd_labels; slab != NULL; slab = slab->lab_next)
{
/* Avoid any empty-string labels, or it will end up as */
/* missing terminal on a device. */
if (*(slab->lab_text) == '\0') continue;
entry = HashFind(&ResNodeTable, slab->lab_text);
node = ResInitializeNode(entry);