RFR: 8255343: java/util/stream/SpliteratorTest.java fails on 32-bit platforms with "Misaligned access at address: 12"
Aleksey Shipilev
shade at openjdk.java.net
Fri Oct 23 15:39:35 UTC 2020
On Fri, 23 Oct 2020 15:25:47 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
> Yes - another thing worth considering though is: if 32bit alignment is the best we can ask a 32bit VM (e.g. a 32bit VM doesn't really 64-bit align a double[] it seems, from what you are getting), then I think an even better fix would be to just make the constants JAVA_LONG and JAVA_DOUBLE aligned to 32 or 64 depending on the platform (and leave the test unchanged).
Please see the new revision. It passes `java/util/stream` tests on both `x86_32` and `x86_64`.
What 32-bit VM is able to do is implementation-dependent, no? I do wonder if long[]/double[] have to be aligned by 8 anyway, since we can do a VarHandle atomic access over its elements, and it is supposed to go correctly. Let's figure that out separately? Filed [JDK-8255350](https://bugs.openjdk.java.net/browse/JDK-8255350).
-------------
PR: https://git.openjdk.java.net/jdk/pull/836
More information about the core-libs-dev
mailing list