summaryrefslogtreecommitdiff
path: root/kernel/register.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/register.cc')
-rw-r--r--kernel/register.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/register.cc b/kernel/register.cc
index 7b670cce..0b0fb9f9 100644
--- a/kernel/register.cc
+++ b/kernel/register.cc
@@ -107,7 +107,10 @@ void Pass::cmd_error(const std::vector<std::string> &args, size_t argidx, std::s
msg.c_str(), command_text.c_str(), error_pos, "");
}
-void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Design *)
+// implemented in kernel/select.cc
+extern void handle_extra_select_args(Pass *pass, std::vector<std::string> args, size_t argidx, RTLIL::Design *design);
+
+void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Design *design, bool select)
{
for (; argidx < args.size(); argidx++)
{
@@ -115,7 +118,12 @@ void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Desig
if (arg.substr(0, 1) == "-")
cmd_error(args, argidx, "Unkown option or option in arguments.");
- cmd_error(args, argidx, "Extra argument.");
+
+ if (!select)
+ cmd_error(args, argidx, "Extra argument.");
+
+ handle_extra_select_args(this, args, argidx, design);
+ break;
}
cmd_log_args(args);
}