When running jtreg tests with ubsan enabled binaries on macOS aarch64, the following issue is reported in tests
java/awt/FontClass/NaNTransform.java and java/awt/FontClass/DrawStringWithInfiniteXform.java :
src/java.desktop/macosx/native/libawt_lwawt/font/CGGlyphImages.m:553:30: runtime error: nan is outside the range of representable values of type 'unsigned long'
UndefinedBehaviorSanitizer:DEADLYSIGNAL
UndefinedBehaviorSanitizer: nested bug in the same thread, aborting.
The ceilf manpage says for a parameter x :
If x is integral, +0, -0, NaN, or infinite, x itself is returned.
So it looks like we try to assign "nan" to the variable width
vImagePixelCount width = ceilf(bbox.size.width);
Question is why the bbox.size.width is nan, that looks a bit strange.
java/awt/FontClass/NaNTransform.java and java/awt/FontClass/DrawStringWithInfiniteXform.java :
src/java.desktop/macosx/native/libawt_lwawt/font/CGGlyphImages.m:553:30: runtime error: nan is outside the range of representable values of type 'unsigned long'
UndefinedBehaviorSanitizer:DEADLYSIGNAL
UndefinedBehaviorSanitizer: nested bug in the same thread, aborting.
The ceilf manpage says for a parameter x :
If x is integral, +0, -0, NaN, or infinite, x itself is returned.
So it looks like we try to assign "nan" to the variable width
vImagePixelCount width = ceilf(bbox.size.width);
Question is why the bbox.size.width is nan, that looks a bit strange.
- links to
-
Review(master) openjdk/jdk/23855