Fixed off-by-one bug in "hierarchy -check" for positional module args
authorClifford Wolf <clifford@clifford.at>
Wed, 24 Dec 2014 15:26:18 +0000 (16:26 +0100)
committerClifford Wolf <clifford@clifford.at>
Wed, 24 Dec 2014 15:26:18 +0000 (16:26 +0100)
passes/hierarchy/hierarchy.cc

index 028a0f0c2fb8290fda5e7ae6eaf6a18ab40c1052..e95947a926ee3191cef706b79bc0518eb75e2303 100644 (file)
@@ -206,9 +206,9 @@ bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool flag_check
                        for (auto &conn : cell->connections())
                                if (conn.first[0] == '$' && '0' <= conn.first[1] && conn.first[1] <= '9') {
                                        int id = atoi(conn.first.c_str()+1);
-                                       if (id < 0 || id >= GetSize(mod->ports))
+                                       if (id <= 0 || id > GetSize(mod->ports))
                                                log_error("Module `%s' referenced in module `%s' in cell `%s' has only %d ports, requested port %d.\n",
-                                                               log_id(cell->type), log_id(module), log_id(cell), GetSize(mod->ports), id + 1);
+                                                               log_id(cell->type), log_id(module), log_id(cell), GetSize(mod->ports), id);
                                } else if (mod->wire(conn.first) == nullptr || mod->wire(conn.first)->port_id == 0)
                                        log_error("Module `%s' referenced in module `%s' in cell `%s' does not have a port named '%s'.\n",
                                                        log_id(cell->type), log_id(module), log_id(cell), log_id(conn.first));