From 974ce6c96067fdefd9fb18c78de0ffb8bbe4fba6 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 25 Jul 2020 23:23:57 +0200 Subject: [PATCH] unused vias are not generated anymore - golden layouts updated. --- .../lefdef/db_plugin/dbLEFImporter.cc | 29 +++++++++++------- .../lefdef/unit_tests/dbLEFDEFImportTests.cc | 2 +- testdata/lefdef/via_properties/au.oas.gz | Bin 476 -> 525 bytes 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/streamers/lefdef/db_plugin/dbLEFImporter.cc b/src/plugins/streamers/lefdef/db_plugin/dbLEFImporter.cc index c5297c4ca..fde75516e 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbLEFImporter.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbLEFImporter.cc @@ -169,7 +169,7 @@ LEFImporter::read_geometries (db::Layout &layout, db::Cell &cell, LayerPurpose p if (test ("CLASS")) { // accept CLASS token for PORT definitions - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -183,7 +183,7 @@ LEFImporter::read_geometries (db::Layout &layout, db::Cell &cell, LayerPurpose p w = dw->second.first; } - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -418,7 +418,7 @@ LEFImporter::read_nondefaultrule (db::Layout & /*layout*/) test (";"); m_nondefault_widths[n][l] = std::make_pair (w, w); } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } } @@ -528,7 +528,7 @@ LEFImporter::read_viadef_by_rule (RuleBasedViaGenerator *vg, ViaDesc &via_desc, } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -561,7 +561,7 @@ LEFImporter::read_viadef_by_geometry (GeometryBasedViaGenerator *vg, ViaDesc &vi routing_layers.push_back (layer_name); } - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -611,6 +611,13 @@ LEFImporter::read_viadef_by_geometry (GeometryBasedViaGenerator *vg, ViaDesc &vi expect (";"); + } else if (test ("PROPERTY")) { + + // skip properties + while (! at_end () && ! test (";")) { + take (); + } + } else { // stop at unknown token break; @@ -726,7 +733,7 @@ LEFImporter::read_layer (Layout & /*layout*/) take (); } } - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -767,7 +774,7 @@ LEFImporter::read_layer (Layout & /*layout*/) } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } @@ -886,7 +893,7 @@ LEFImporter::read_macro (Layout &layout) expect ("END"); } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } } @@ -941,7 +948,7 @@ LEFImporter::read_macro (Layout &layout) expect (";"); } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } } @@ -1047,7 +1054,7 @@ LEFImporter::do_read (db::Layout &layout) /* dbu_mic = */ get_double (); expect (";"); } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } } @@ -1109,7 +1116,7 @@ LEFImporter::do_read (db::Layout &layout) read_macro (layout); } else { - while (! test (";")) { + while (! at_end () && ! test (";")) { take (); } } diff --git a/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc b/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc index efd68ffa1..50fcb5341 100644 --- a/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc +++ b/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc @@ -392,6 +392,6 @@ TEST(111_mapfile) TEST(112_via_properties) { - run_test (_this, "via_properties", "lef:in.lef", "au.oas.gz", default_options (), false); + run_test (_this, "via_properties", "lef:in.lef+def:in.def", "au.oas.gz", default_options (), false); } diff --git a/testdata/lefdef/via_properties/au.oas.gz b/testdata/lefdef/via_properties/au.oas.gz index d6551998c1ddf76dfab4e905cb9b4c094ef7a7de..e86ce559a53e3d3f8d1c0668ef9c587d271bfa4f 100644 GIT binary patch delta 130 zcmcb^+{-c{&zvJUBeNjBB)@{Of-x);b!*_4e{~xb7f{>X5c|^CQdgp z=Vk$^VP*nKz*)SEBGrrxZas|dy^JD^%p#pk?z{|w2N*?evoM@sJPCwM6CeJZ_<@Cq GfdK&FP9Zb^ delta 82 zcmeBWxx+jmPm?Rm(=om*Gtn^Kgc*s=%>oi*W@2XGfwCqpH4@=v5V_67;O6cwqRH69 V*vlxw$jmfZkntC5Lqh`t0|11s6es`y