Fixed a LEF/DEF reader bug (was '+ RECT' or '+ POLYGON' in SPECIALNETS)

This commit is contained in:
Matthias Koefferlein 2020-04-18 18:48:25 +02:00
parent 70d8334f8c
commit 9a7f0a9c2a
2 changed files with 6 additions and 4 deletions

View File

@ -773,17 +773,19 @@ DEFImporter::read_nets (db::Layout &layout, db::Cell &design, double scale, bool
} else {
bool prefixed = false;
bool can_have_rect_or_polygon = true;
if ((was_shield = test ("SHIELD")) == true || test ("NOSHIELD") || test ("ROUTED") || test ("FIXED") || test ("COVER")) {
if (was_shield) {
take ();
}
prefixed = true;
can_have_rect_or_polygon = test ("+");
}
bool any = false;
if (test ("POLYGON")) {
if (can_have_rect_or_polygon && test ("POLYGON")) {
std::string ln = get ();
@ -801,7 +803,7 @@ DEFImporter::read_nets (db::Layout &layout, db::Cell &design, double scale, bool
any = true;
} else if (test ("RECT")) {
} else if (can_have_rect_or_polygon && test ("RECT")) {
std::string ln = get ();

View File

@ -16,9 +16,9 @@ VIAS 1 ;
END VIAS
SPECIALNETS 1 ;
- dummy
+ ROUTED RECT M2 ( 350 0 ) ( 200 100 )
+ ROUTED + RECT M2 ( 350 0 ) ( 200 100 )
+ POLYGON M1 ( 300 0 ) ( 300 50 ) ( 350 50 ) ( 400 100 ) ( 400 0 )
+ ROUTED POLYGON M2 ( 300 150 ) ( 300 200 ) ( 350 200 ) ( 400 250 ) ( 400 150 )
+ ROUTED + POLYGON M2 ( 300 150 ) ( 300 200 ) ( 350 200 ) ( 400 250 ) ( 400 150 )
+ RECT M1 ( 0 0 ) ( 100 200 )
+ ROUTED M1 30 ( 0 0 15 ) ( 100 0 0 ) VIA1_dummy ( 100 100 10 )
+ ROUTED M2 50 + SHAPE RING + STYLE 1 ( 0 100 ) ( 100 200 ) ( 200 200 )