On Thu, 1 Feb 2024 at 17:08, Hans-Peter Nilsson <h...@axis.com> wrote:
>
> > From: Hans-Peter Nilsson <h...@axis.com>
> > Date: Thu, 1 Feb 2024 17:16:47 +0100
>
> > Not speaking for other platforms with default-packed layout
> > or where ABI structure layout alignment implies a change due
> > to PCC_BITFIELD_TYPE_MATTERS and the "unsigned long"
> > bitfield type.
> >
> > That last one may matter though.
>
> > > diff --git a/libstdc++-v3/include/std/format 
> > > b/libstdc++-v3/include/std/format
> > > index 0eca8b58bfa..6c958bc11a5 100644
> > > --- a/libstdc++-v3/include/std/format
> > > +++ b/libstdc++-v3/include/std/format
> > > @@ -406,6 +406,7 @@ namespace __format
> > >        _WidthPrec _M_width_kind : 2;
> > >        _WidthPrec _M_prec_kind : 2;
> > >        _Pres_type _M_type : 4;
> > > +      unsigned long _M_reserved : 17;
>
> FAOD (no doubt you got this already, but...)
>
> I'd suggest making that "unsigned long" only for 16-bitters (i.e. where
> you'd need a type larger than "unsigned int" to cover 17 bits) and
> "unsigned" elsewhere, so at least you have no impact from
> PCC_BITFIELD_TYPE_MATTERS.

Ah, I have never heard of that. I guess using uint32_t would be OK.

Reply via email to