From d64a92f4f59ef34f810d92841516e6c8b92a5131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bengt=20Sj=C3=B6l=C3=A9n?= Date: Tue, 18 Nov 2025 20:28:26 +0100 Subject: [PATCH] Avoid throwing out_of_range in log_fmax when related clocks lack Fmax entries --- common/kernel/timing_log.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/kernel/timing_log.cc b/common/kernel/timing_log.cc index 8e6a3f3c..7385450a 100644 --- a/common/kernel/timing_log.cc +++ b/common/kernel/timing_log.cc @@ -300,8 +300,14 @@ static void log_fmax(Context *ctx, TimingResult &result, bool warn_on_failure) target = clock_fmax.at(clock_a).constraint; } else if (!clock_fmax.count(clock_a) && clock_fmax.count(clock_b)) { target = clock_fmax.at(clock_b).constraint; + } else if (clock_fmax.count(clock_a) && clock_fmax.count(clock_b)) { + target = std::min(clock_fmax.at(clock_a).constraint, clock_fmax.at(clock_b).constraint); } else { - target = std::min(clock_fmax.at(clock_a).constraint, clock_fmax.at(clock_b).constraint); + // Neither clock has an Fmax entry; just skip or fall back + log_warning("No Fmax for related clocks '%s' and '%s', skipping.\n", + ctx->nameOf(clock_a), + ctx->nameOf(clock_b)); + continue; } bool passed = target < fmax;