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