Re: Memory corruption due to word sharing

2012-02-08 Thread Jason Merrill
On 02/07/2012 05:32 AM, Aldy Hernandez wrote: struct A { virtual void f(); int f1 : 1;--- bit 64 }; struct B : public A { int f2 : 1; // { dg-warning ABI }--- bit 65 int : 0; int f3 : 4; int f4 : 3; }; It is my understanding that f1 and f2 must be in distinct memory regions. So

Re: Memory corruption due to word sharing

2012-02-07 Thread Aldy Hernandez
Testcase is for example g++.dg/abi/bitfield5.C, bit layout annotated: struct A { virtual void f(); int f1 : 1;--- bit 64 }; struct B : public A { int f2 : 1; // { dg-warning ABI }--- bit 65 int : 0; int f3 : 4; int f4 : 3; }; maybe it was a bug (above happens with

Re: Memory corruption due to word sharing

2012-02-03 Thread Richard Guenther
(Somehow my reply was private to Aldy ... forwarding to gcc-patches now, given that it contains a patch and we changed topics) On Fri, 3 Feb 2012, Richard Guenther wrote: On Thu, 2 Feb 2012, Aldy Hernandez wrote: Linus Torvalds torva...@linux-foundation.org writes: Seriously - is

Re: Memory corruption due to word sharing

2012-02-03 Thread Richard Guenther
On Fri, 3 Feb 2012, Richard Guenther wrote: On Fri, 3 Feb 2012, Richard Guenther wrote: On Thu, 2 Feb 2012, Aldy Hernandez wrote: Linus Torvalds torva...@linux-foundation.org writes: Seriously - is there any real argument *against* just using the base type as a hint for