diff options
author | Deev Patel <dkp10000@gmail.com> | 2024-06-06 11:53:25 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-06-08 15:51:40 +0100 |
commit | ae91b5dd14920ff9671db8ff80c0d763d25f977f (patch) | |
tree | f5687c013f8dd061ea3de9c71537578ba4fdf727 | |
parent | 0bb1db32ccf54a9de59bea718f7575f7ef22abf5 (diff) | |
download | gcc-ae91b5dd14920ff9671db8ff80c0d763d25f977f.zip gcc-ae91b5dd14920ff9671db8ff80c0d763d25f977f.tar.gz gcc-ae91b5dd14920ff9671db8ff80c0d763d25f977f.tar.bz2 |
libstdc++: Add missing constexpr to __atomic_impl::__clear_padding
This is called from the std::atomic<floating-point-type> constructor,
which needs to be usable in constant expressions.
libstdc++-v3/ChangeLog:
* include/bits/atomic_base.h (__atomic_impl::__clear_padding):
Add missing constexpr specifier.
* testsuite/29_atomics/atomic_float/constinit.cc: New test.
Co-authored-by: Jonathan Wakely <jwakely@redhat.com>
-rw-r--r-- | libstdc++-v3/include/bits/atomic_base.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h index 062f154..20901b7 100644 --- a/libstdc++-v3/include/bits/atomic_base.h +++ b/libstdc++-v3/include/bits/atomic_base.h @@ -968,7 +968,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } template<typename _Tp> - _GLIBCXX_ALWAYS_INLINE _Tp* + _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp* __clear_padding(_Tp& __val) noexcept { auto* __ptr = std::__addressof(__val); diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc new file mode 100644 index 0000000..6b3f4f7 --- /dev/null +++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc @@ -0,0 +1,3 @@ +// { dg-do compile { target c++20 } } +#include <atomic> +constinit std::atomic<float> a(0.0f); |