RFR: 8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
Dean Long
dlong at openjdk.org
Tue Mar 25 18:04:18 UTC 2025
On Mon, 10 Mar 2025 13:37:23 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
> When running jtreg tests on macOS aarch64 with ubsan - enabled binaries, in the test
> java/foreign/TestHandshake
> this error/warning is reported :
>
> jdk/src/hotspot/share/opto/block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
> UndefinedBehaviorSanitizer:DEADLYSIGNAL
> UndefinedBehaviorSanitizer: nested bug in the same thread, aborting.
>
> Seems it happens in this calculation (float value does not fit into an int) : int to_pct = (int) ((100 * freq) / target->_freq);
Yes, we should fix frequency calculation in a separate follow up. I was trying to better understand what is going on, to see what value to clamp the result to. If this can only happens for infinite loops, then it seems like clamping to_pct to 100 is the right answer. And as Tom said, if we get it wrong, we just get a less good layout.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23962#issuecomment-2752109356
More information about the hotspot-compiler-dev
mailing list