aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2022-05-06 08:05:23 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2022-05-06 08:05:23 +0200
commitd8adbff72f6648589d7699857ee8c65a80315033 (patch)
tree629577cebe310663d115d42f71881c650b9f93b2
parent8b3657454b9f9aace48ef5d68016122a7ce657ac (diff)
downloadyosys-d8adbff72f6648589d7699857ee8c65a80315033.tar.gz
yosys-d8adbff72f6648589d7699857ee8c65a80315033.tar.bz2
yosys-d8adbff72f6648589d7699857ee8c65a80315033.zip
Handle possible non-memory indexed data
-rw-r--r--kernel/fstdata.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/kernel/fstdata.cc b/kernel/fstdata.cc
index 41b22d1c5..fea8ee3c3 100644
--- a/kernel/fstdata.cc
+++ b/kernel/fstdata.cc
@@ -141,11 +141,12 @@ void FstData::extractVarNames()
char *endptr;
int mem_addr = strtol(addr.c_str(), &endptr, 16);
if (*endptr) {
- log_error("Error parsing memory address in : %s\n", clean_name.c_str());
+ log_warning("Error parsing memory address in : %s\n", clean_name.c_str());
+ } else {
+ memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id;
+ name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle;
+ continue;
}
- memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id;
- name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle;
- continue;
}
pos = clean_name.find_last_of("[");
if (pos != std::string::npos) {
@@ -155,11 +156,12 @@ void FstData::extractVarNames()
char *endptr;
int mem_addr = strtol(addr.c_str(), &endptr, 10);
if (*endptr) {
- log_error("Error parsing memory address in : %s\n", clean_name.c_str());
+ log_warning("Error parsing memory address in : %s\n", clean_name.c_str());
+ } else {
+ memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id;
+ name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle;
+ continue;
}
- memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id;
- name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle;
- continue;
}
name_to_handle[var.scope+"."+clean_name] = h->u.var.handle;
break;