RFR: JDK-8300080: offset_of for GCC/Clang exhibits undefined behavior and is not always a compile-time constant [v2]

Justin King jcking at openjdk.org
Fri Jan 13 14:52:39 UTC 2023


> The implementation of `offset_of` for GCC/Clang only deals with types are aligned to 16 bytes or less, if they are more, such as `zCollectedHeap` the behavior is undefined. UBSan also suggests that `offset_of` is not always a compile time constant, as the stack trace came from the dynamic loader during library loading. This patch changes `offset_of` to use `offsetof` and disables the warning `invalid-offsetof` for the JVM.

Justin King has updated the pull request incrementally with one additional commit since the last revision:

  Revert offset_of change, use alignas, and force lambda inline
  
  Signed-off-by: Justin King <jcking at google.com>

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/11978/files
  - new: https://git.openjdk.org/jdk/pull/11978/files/98c9ea24..3f46a86b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11978&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11978&range=00-01

  Stats: 15 lines in 2 files changed: 11 ins; 1 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/11978.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11978/head:pull/11978

PR: https://git.openjdk.org/jdk/pull/11978


More information about the hotspot-dev mailing list