-
Bug
-
Resolution: Fixed
-
P4
-
22
-
b25
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8341108 | 21.0.6-oracle | Calvin Cheung | P4 | Resolved | Fixed | b01 |
JDK-8335324 | 21.0.5 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
With the changes in JDK-8319883 GCC 13.2.0 generates stringop-overflow warnings on linux-x64-zero fastdebug. For example:
In file included from src/hotspot/share/runtime/atomic.hpp:859,
from src/hotspot/share/oops/oop.hpp:34,
from src/hotspot/share/runtime/handles.hpp:29,
from src/hotspot/share/classfile/vmClasses.hpp:30,
from src/hotspot/share/classfile/javaClasses.hpp:28,
from src/hotspot/share/runtime/handshake.cpp:26:
In member function 'T Atomic::PlatformLoad<byte_size>::operator()(const volatile T*) const [with T = long unsigned int; long unsigned int byte_size = 8]',
inlined from 'T Atomic::LoadImpl<T, PlatformOp, typename std::enable_if<(std::is_integral<_Tp>::value || std::is_pointer<_Tp>::value), void>::type>::operator()(const volatile T*) const [with T = long unsigned int; PlatformOp = Atomic::PlatformLoad<8>]' at src/hotspot/share/runtime/atomic.hpp:513:24,
inlined from 'static T Atomic::load(const volatile T*) [with T = long unsigned int]' at src/hotspot/share/runtime/atomic.hpp:870:49,
inlined from 'T Atomic::PlatformOrderedLoad<byte_size, type>::operator()(const volatile T*) const [with T = long unsigned int; long unsigned int byte_size = 8; ScopedFenceType type = X_ACQUIRE]' at src/hotspot/share/runtime/atomic.hpp:878:24,
inlined from 'T Atomic::LoadImpl<T, PlatformOp, typename std::enable_if<(std::is_integral<_Tp>::value || std::is_pointer<_Tp>::value), void>::type>::operator()(const volatile T*) const [with T = long unsigned int; PlatformOp = Atomic::PlatformOrderedLoad<8, X_ACQUIRE>]' at src/hotspot/share/runtime/atom\
ic.hpp:513:24,
inlined from 'static T Atomic::load_acquire(const volatile T*) [with T = long unsigned int]' at src/hotspot/share/runtime/atomic.hpp:884:67,
inlined from 'uintptr_t SafepointMechanism::ThreadData::get_polling_word()' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:48:30,
inlined from 'static bool SafepointMechanism::local_poll_armed(JavaThread*)' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:52:47,
inlined from 'static bool SafepointMechanism::should_process(JavaThread*, bool)' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:60:24,
inlined from 'static void Handshake::execute(HandshakeClosure*, ThreadsListHandle*, JavaThread*)' at src/hotspot/share/runtime/handshake.cpp:404:43:
src/hotspot/os_cpu/linux_zero/atomic_linux_zero.hpp:147:16: error: 'long unsigned int __atomic_load_8(const volatile void*, int)' writing 8 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=]
147 | __atomic_load(const_cast<T*>(src), &dest, __ATOMIC_RELAXED);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In static member function 'static void Handshake::execute(HandshakeClosure*, ThreadsListHandle*, JavaThread*)':
cc1plus: note: destination object is likely at address zero
In file included from src/hotspot/share/runtime/atomic.hpp:859,
from src/hotspot/share/oops/oop.hpp:34,
from src/hotspot/share/runtime/handles.hpp:29,
from src/hotspot/share/classfile/vmClasses.hpp:30,
from src/hotspot/share/classfile/javaClasses.hpp:28,
from src/hotspot/share/runtime/handshake.cpp:26:
In member function 'T Atomic::PlatformLoad<byte_size>::operator()(const volatile T*) const [with T = long unsigned int; long unsigned int byte_size = 8]',
inlined from 'T Atomic::LoadImpl<T, PlatformOp, typename std::enable_if<(std::is_integral<_Tp>::value || std::is_pointer<_Tp>::value), void>::type>::operator()(const volatile T*) const [with T = long unsigned int; PlatformOp = Atomic::PlatformLoad<8>]' at src/hotspot/share/runtime/atomic.hpp:513:24,
inlined from 'static T Atomic::load(const volatile T*) [with T = long unsigned int]' at src/hotspot/share/runtime/atomic.hpp:870:49,
inlined from 'T Atomic::PlatformOrderedLoad<byte_size, type>::operator()(const volatile T*) const [with T = long unsigned int; long unsigned int byte_size = 8; ScopedFenceType type = X_ACQUIRE]' at src/hotspot/share/runtime/atomic.hpp:878:24,
inlined from 'T Atomic::LoadImpl<T, PlatformOp, typename std::enable_if<(std::is_integral<_Tp>::value || std::is_pointer<_Tp>::value), void>::type>::operator()(const volatile T*) const [with T = long unsigned int; PlatformOp = Atomic::PlatformOrderedLoad<8, X_ACQUIRE>]' at src/hotspot/share/runtime/atom\
ic.hpp:513:24,
inlined from 'static T Atomic::load_acquire(const volatile T*) [with T = long unsigned int]' at src/hotspot/share/runtime/atomic.hpp:884:67,
inlined from 'uintptr_t SafepointMechanism::ThreadData::get_polling_word()' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:48:30,
inlined from 'static bool SafepointMechanism::local_poll_armed(JavaThread*)' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:52:47,
inlined from 'static bool SafepointMechanism::should_process(JavaThread*, bool)' at src/hotspot/share/runtime/safepointMechanism.inline.hpp:60:24,
inlined from 'static void Handshake::execute(HandshakeClosure*, ThreadsListHandle*, JavaThread*)' at src/hotspot/share/runtime/handshake.cpp:404:43:
src/hotspot/os_cpu/linux_zero/atomic_linux_zero.hpp:147:16: error: 'long unsigned int __atomic_load_8(const volatile void*, int)' writing 8 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=]
147 | __atomic_load(const_cast<T*>(src), &dest, __ATOMIC_RELAXED);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In static member function 'static void Handshake::execute(HandshakeClosure*, ThreadsListHandle*, JavaThread*)':
cc1plus: note: destination object is likely at address zero
- backported by
-
JDK-8335324 Disable GCC stringop-overflow warning for affected files
- Resolved
-
JDK-8341108 Disable GCC stringop-overflow warning for affected files
- Resolved
- relates to
-
JDK-8319883 Zero: Use atomic built-ins for 64-bit accesses
- Resolved
-
JDK-8320353 Reenable stringop-overflow warnings
- Open
- links to
-
Commit openjdk/jdk21u-dev/6c65326b
-
Commit openjdk/jdk/a1e7a302
-
Review openjdk/jdk21u-dev/797
-
Review openjdk/jdk/16702
(3 links to)