Skip to content

Commit 49d50e3

Browse files
committed
ignore invalid refs in test-range
1 parent 9de521b commit 49d50e3

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/cmd/commands.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,10 @@ void Commands::testRange(const std::string& id) {
759759
Log::get().warn(std::string(e.what()));
760760
continue;
761761
}
762+
if (manager.getStats().getTransitiveLength(seq.id) < 0) {
763+
Log::get().warn("Skipping invalid program for " + seq.id.string());
764+
continue;
765+
}
762766
if (checkRange(seq, program, false) && checkRange(seq, program, true)) {
763767
numChecked++;
764768
}

src/mine/stats.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,12 @@ int64_t Stats::getTransitiveLength(UID id) const {
422422
int64_t length = program_lengths.at(id);
423423
auto range = call_graph.equal_range(id);
424424
for (auto &it = range.first; it != range.second; it++) {
425-
length += getTransitiveLength(it->second);
425+
auto len = getTransitiveLength(it->second);
426+
if (len < 0) {
427+
length = -1;
428+
break;
429+
}
430+
length += len;
426431
}
427432
visited_programs.erase(id);
428433
return length;

0 commit comments

Comments
 (0)