From mboxrd@z Thu Jan 1 00:00:00 1970 From: "David A. Greene" To: "Martin v. Loewis" , egcs@egcs.cygnus.com Subject: Re: egcs and bitfields Date: Wed, 31 Mar 1999 23:46:00 -0000 Message-ID: <36E92F61.5951621@eecs.umich.edu> References: <36E844B2.8DAEFAAF@eecs.umich.edu> <199903112300.AAA19947@mira.isdn.cs.tu-berlin.de> X-SW-Source: 1999-03n/msg00458.html Message-ID: <19990331234600.IWkD0c2qpEnMFwNCEKfunXVhdnFsCS6K3Mraj_uEpGg@z> Martin v. Loewis wrote: > > > I sent this question to the list a few days ago but got > > no response. Can someone please help me out? > > I think the problem with your previous report was that it was hard to > understand. I tried to come up with a program that demonstrates your > problem, and I got > > struct baz { unsigned int a:2, b:4, c:32;} y; > > void foo() > { > y.c = 0x56789; > } > > int main() > { > unsigned int *b; > bzero(&y,sizeof(y)); > foo(); > b=&y; > printf("%x %x\n",b[0],b[1]); > } > > Is this the case you are talking about? Now, you claim that the SysV > ABI requires y.c to be at offset 4, right? (this is a claim I can't > verify since I don't have that specification) > > Anyway, when I run the program on i586-pc-linux-gnu, with > egcs-2.93.11, I get as output > > 0 56789 > > >From your explanation, I understand that this result is > ABI-compliant. So where is the problem?