Corrected an extraction issue in which an error message about

"unexpected asymmetric device" is printed prematurely, as it
is inside a loop checking over all device entries compatible
with a device type.  Also:  Flagged an issue with the "label"
keyword in the "cifinput" section of a tech file.  The "label"
keyword cannot be used in conjunction with boolean operators.
It can only connect labels on a specific GDS type to one magic
type.  Unfortunately, because this was not flagged before as
an error or warning, the incorrect usage has crept into a lot
of tech files.  This uncovers an underlying issue that labels
must be allowed to automatically reconnect types, which is
undermined by the "no-reconnect-labels" cifinput option.  That
issue will be addressed in an upcoming commit.
This commit is contained in:
Tim Edwards 2023-10-16 17:29:05 -04:00
parent 8798a3256c
commit 5b29870fce
5 changed files with 19 additions and 15 deletions

View File

@ -1 +1 @@
8.3.438
8.3.439

View File

@ -872,10 +872,20 @@ CIFReadTechLine(sectionName, argc, argv)
goto wrongNumArgs;
}
CIFParseReadLayers(argv[1], &mask, TRUE);
for (i=0; i<MAXCIFRLAYERS; i+=1)
for (i = 0; i < MAXCIFRLAYERS; i++)
{
if (TTMaskHasType(&mask,i))
if (TTMaskHasType(&mask, i))
{
/* Only one magic type can be assigned to a GDS layer, so
* multiple assignments should be flagged as errors.
*/
if (cifCurReadStyle->crs_labelLayer[i] != TT_SPACE)
TechError("Labels on layer \"%s\" attached to \"%s\" supersedes "
"prior attachment to \"%s\".\n",
cifReadLayers[i],
DBTypeLongNameTbl[cifCurReadLayer->crl_magicType],
DBTypeLongNameTbl[cifCurReadStyle->crs_labelLayer[i]]);
cifCurReadStyle->crs_labelLayer[i]
= cifCurReadLayer->crl_magicType;
if (argc == 3)
@ -899,8 +909,8 @@ CIFReadTechLine(sectionName, argc, argv)
if (argc != 2) goto wrongNumArgs;
CIFParseReadLayers(argv[1], &mask, TRUE);
/* trash the value in crs_labelLayer so that any labels on this
layer get junked, also. dcs 4/11/90
*/
* layer get junked, also. dcs 4/11/90
*/
for (i=0; i < cifNReadLayers; i++)
{
if (TTMaskHasType(&mask,i))

View File

@ -50,7 +50,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
* CmdAddPath --
*
* Implement the "addpath" command: append to the global cell search path.
* (Usage superceded by extended "path" command; retained for compatibility)
* (Usage superseded by extended "path" command; retained for compatibility)
*
* Usage:
* addpath path

View File

@ -785,7 +785,7 @@ CmdMove(w, cmd)
* box exists.
* If no selection exists, but the box does, then move the box
* anyway (hace 10/8/97)
* The above method is superceded by "box move <dir> <dist>"
* The above method is superseded by "box move <dir> <dist>"
* but is retained for backward compatibility.
*/

View File

@ -3490,16 +3490,10 @@ extTransPerimFunc(bp)
}
}
else
{
/* Do not generate error messages on "Ignore" or "Short"
* device types
/* Do not print error messages here, as errors may
* be resolved when checking the next device entry.
*/
if (strcmp(extTransRec.tr_devrec->exts_deviceName, "Ignore") &&
strcmp(extTransRec.tr_devrec->exts_deviceName, "Short"))
TxError("Warning: Unexpected asymmetric device at %d, %d!\n",
bp->b_outside->ti_ll.p_x, bp->b_outside->ti_ll.p_y);
break;
}
/* Add the length to this terminal's perimeter */
extTransRec.tr_termlen[thisterm] += len;