From 2967d37669f8e4e3b350f61d454d6dacc4e18f2b Mon Sep 17 00:00:00 2001 From: "Emil J. Tywoniak" Date: Tue, 3 Mar 2026 10:34:02 +0100 Subject: [PATCH] read_liberty: fix for msvc --- frontends/liberty/liberty.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/frontends/liberty/liberty.cc b/frontends/liberty/liberty.cc index 3d4e99310..7377afbd0 100644 --- a/frontends/liberty/liberty.cc +++ b/frontends/liberty/liberty.cc @@ -20,6 +20,7 @@ #include "passes/techmap/libparse.h" #include "kernel/register.h" #include "kernel/log.h" +#include YOSYS_NAMESPACE_BEGIN @@ -225,7 +226,8 @@ static void create_ff(RTLIL::Module *module, const LibertyAst *node) if (child->id == "preset") preset_sig = parse_func_expr(module, child->value.c_str()); - for (auto& [id, var] : {pair{"clear_preset_var1", &clear_preset_var1}, {"clear_preset_var2", &clear_preset_var2}}) + using SillyMsvcType = std::tuple*>; + for (auto& [id, var] : std::array{SillyMsvcType{"clear_preset_var1", &clear_preset_var1}, {"clear_preset_var2", &clear_preset_var2}}) if (child->id == id) { if (child->value.size() != 1) log_error("Unexpected length of clear_preset_var* value %s in FF cell %s\n", child->value, name); @@ -266,7 +268,8 @@ static void create_ff(RTLIL::Module *module, const LibertyAst *node) } } - for (auto& [out_sig, cp_var, neg] : {tuple{iq_sig, clear_preset_var1, false}, {iqn_sig, clear_preset_var2, true}}) { + using SillyMsvcType = std::tuple&, bool>; + for (auto& [out_sig, cp_var, neg] : std::array{SillyMsvcType{iq_sig, clear_preset_var1, false}, {iqn_sig, clear_preset_var2, true}}) { SigSpec q_sig = out_sig; if (neg) { q_sig = module->addWire(NEW_ID, out_sig.as_wire());