RFR: 8341178: TypeRawPtr::add_offset may be "miscompiled" due to UB
Kim Barrett
kbarrett at openjdk.org
Thu Oct 3 12:56:48 UTC 2024
Please review this change to TypeRawPtr::add_offset to prevent a compiler from
inferring things based on prior pointer arithmetic not invoking UB. As noted in
the bug report, clang is actually doing this.
To accomplish this, changed to integral arithmetic. Also added over/underflow
checks.
Also made a couple of minor touchups. Replaced an implicit conversion to bool
with an explicit compare to nullptr (per style guide). Removed a no longer
needed dummy return after a (now) noreturn function.
Testing: mach5 tier1-7
That testing was with calls to "fatal" for the over/underflow cases and the
sum==0 case. There were no hits. I'm not sure how to construct a test that
would hit those.
-------------
Commit messages:
- fix
Changes: https://git.openjdk.org/jdk/pull/21324/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21324&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8341178
Stats: 14 lines in 1 file changed: 9 ins; 1 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/21324.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21324/head:pull/21324
PR: https://git.openjdk.org/jdk/pull/21324
More information about the hotspot-compiler-dev
mailing list