From de535c711fb126fcd76608470cce64943dc745c7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 29 Apr 2024 18:58:04 +0200 Subject: [PATCH] Fixed problem by creating a default device class from an empty template string --- src/db/db/dbLayoutToNetlistReader.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/db/db/dbLayoutToNetlistReader.cc b/src/db/db/dbLayoutToNetlistReader.cc index 1f310c806..127cbc4b7 100644 --- a/src/db/db/dbLayoutToNetlistReader.cc +++ b/src/db/db/dbLayoutToNetlistReader.cc @@ -395,12 +395,18 @@ void LayoutToNetlistStandardReader::read_netlist (db::Netlist *netlist, db::Layo throw tl::Exception (tl::to_string (tr ("Duplicate definition of device class: ")) + class_name); } - db::DeviceClassTemplateBase *dct = db::DeviceClassTemplateBase::template_by_name (templ_name); - if (! dct) { - throw tl::Exception (tl::to_string (tr ("Invalid device class template: ")) + templ_name); + db::DeviceClass *dc; + if (templ_name.empty ()) { + // generic device class (issue #1696) + dc = new db::DeviceClass (); + } else { + db::DeviceClassTemplateBase *dct = db::DeviceClassTemplateBase::template_by_name (templ_name); + if (! dct) { + throw tl::Exception (tl::to_string (tr ("Invalid device class template: ")) + templ_name); + } + dc = dct->create (); } - db::DeviceClass *dc = dct->create (); dc->set_name (class_name); netlist->add_device_class (dc);