[PATCH] Fix PRs 52080, 52097 and 48124, rewrite bitfield expansion, enable the C++ memory model wrt bitfields everywhere

Richard Guenther rguenther@suse.de
Tue Mar 27 07:50:00 GMT 2012


On Tue, 27 Mar 2012, Eric Botcazou wrote:

> > Btw, I put things in stor-layout.c exactly to allow a langhook
> > eventually controlling things for the bitfield representative.
> > Mind adding one that simply disables them completely for Ada?
> > Or maybe, for selected record types, so that we do
> >
> >   if (lang_hooks.types.lower_bitfield_layout (rli->t))
> >     finish_bitfield_layout (rli->t);
> >
> > ?  Letting the FE decide when to punt is certainly better than
> > trying to figure it out from stor-layout.c code.  I suppose
> > for types that are supposed to interoperate with C / C++ using
> > the C / C++ rules makes sense (I suppose there is sth like
> > C/C++ interoperability with Ada).
> 
> Yes, there is C/C++ interoperability in Ada.  But GNAT's policy is to be 
> compatible with C/C++ by default, so I'd rather not deviate from the common 
> code for such a central thing as record layout if we can avoid it.

I see.  Though the code does not affect layout but only access "layout"
for bitfields.  I'm fine with fixing the issues we run into elsewhere,
just the langhook is a possibility I had in mind from the start, in
case frontends differ in their memory model for bitfields.

Richard.



More information about the Gcc-patches mailing list