[committed v2] libstdc++: Fix required alignment computation for floating points [PR122267]
Tomasz Kaminski
tkaminsk@redhat.com
Fri Oct 17 08:30:44 GMT 2025
On Wed, Oct 15, 2025 at 5:16 PM <franz.sirl-kernel@lauterbach.com> wrote:
> Am 2025-10-14 um 15:00 schrieb Tomasz Kamiński:
> > Before the r16-4349-g90dde804626f13 the required alignment of floating
> point,
> > and pointer specialization used __alignof__(_Vt) as required_alignment,
> and
> > mentioned commit changed them to alignof(_Vt). This values differs on
> i686
> > for double, as alignof(double) is 4, and __alignof__(double) is 8.
> >
> > This patch restores the previous behavior.
> >
> > PR libstdc++/122267
> >
> > libstdc++-v3/ChangeLog:
> >
> > * include/bits/atomic_base.h
> > (__atomic_ref_base<const _Tp>::_S_required_alignment):
> > Use __alignof__ instead of alignof.
> >
> > Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
> > ---
> > v2 fixes spelling of alignment in commit message.
> > Pushed to trunk.
> >
> > libstdc++-v3/include/bits/atomic_base.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libstdc++-v3/include/bits/atomic_base.h
> b/libstdc++-v3/include/bits/atomic_base.h
> > index 0f3f6b1925d..7e4ad2b1272 100644
> > --- a/libstdc++-v3/include/bits/atomic_base.h
> > +++ b/libstdc++-v3/include/bits/atomic_base.h
> > @@ -1538,7 +1538,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> > _S_required_aligment()
>
> The method name itself and it's single use still have the "aligment" typo.
>
Thanks, just pushed r16-4466-gc591c2aff5b849 to fix it.
>
> > {
> > if constexpr (is_floating_point_v<_Vt> || is_pointer_v<_Vt>)
> > - return alignof(_Vt);
> > + return __alignof__(_Vt);
> > else if constexpr ((sizeof(_Vt) & (sizeof(_Vt) - 1)) ||
> sizeof(_Vt) > 16)
> > return alignof(_Vt);
> > else
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20251017/90ca1476/attachment.htm>
More information about the Libstdc++
mailing list