[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