Do not use log_signal() for empty SigSpec to prevent "{ }"
diff --git a/passes/hierarchy/clkpart.cc b/passes/hierarchy/clkpart.cc
index a9ef2aa..7cd1f4b 100644
--- a/passes/hierarchy/clkpart.cc
+++ b/passes/hierarchy/clkpart.cc
@@ -246,9 +246,11 @@
 				if (it.first == largest_domain)
 					continue;
 
+				auto clk = std::get<1>(it.first);
+				auto en = std::get<3>(it.first);
 				std::string submod = stringf("\\%s%s.%s%s",
-						std::get<0>(it.first) ? "" : "!", log_signal(std::get<1>(it.first)),
-						std::get<2>(it.first) ? "" : "!", log_signal(std::get<3>(it.first)));
+						std::get<0>(it.first) ? "" : "!", clk.empty() ? "" : log_signal(clk),
+						std::get<2>(it.first) ? "" : "!", en.empty() ? "" : log_signal(en));
 				for (auto c : it.second)
 					c->attributes[ID(submod)] = submod;
 				new_submods.push_back(stringf("%s_%s", mod->name.c_str(), submod.c_str()));