JDK-8150426 : Wrong cast in metadata_at_put
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2016-02-23
  • Updated: 2019-01-14
  • Resolved: 2016-02-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u192Fixed 9 b110Fixed
Description
The _LP64 variant of typeArrayOopDesc::metadata_at_put casts a pointer to a long. Win64 is really _LLP64 rather than _LP64 (though we use the latter), so on that platform the cast unexpectedly discards the high bits of the address.

Fortunately, there are presently no uses of this function.

Comments
Planning to backport to 8u as this is a build failure with later VS compilers. Added noreg-hard.
12-06-2018