From ddf326b8e6e50403303b410635e4c26d7bf56aaa Mon Sep 17 00:00:00 2001 From: Matthias Baesken Date: Fri, 28 Mar 2025 08:19:20 +0000 Subject: [PATCH] 8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int' Reviewed-by: kvn, dlong --- src/hotspot/share/opto/block.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hotspot/share/opto/block.cpp b/src/hotspot/share/opto/block.cpp index 8e49226c262..5d4ac471303 100644 --- a/src/hotspot/share/opto/block.cpp +++ b/src/hotspot/share/opto/block.cpp @@ -1613,7 +1613,8 @@ void PhaseBlockLayout::find_edges() { Block *target = b->non_connector_successor(j); float freq = b->_freq * b->succ_prob(j); int from_pct = (int) ((100 * freq) / b->_freq); - int to_pct = (int) ((100 * freq) / target->_freq); + float f_to_pct = (100 * freq) / target->_freq; + int to_pct = (f_to_pct < 100.0) ? (int)f_to_pct : 100; edges->append(new CFGEdge(b, target, freq, from_pct, to_pct)); } }