On Sun, Sep 25, 2011 at 2:36 PM, Joern Rennecke <amyl...@spamcop.net> wrote: > This patch has not been reviewed for eight weeks. > > ----- Forwarded message from amyl...@spamcop.net ----- > Date: Mon, 01 Aug 2011 01:01:13 -0400 > From: Joern Rennecke <amyl...@spamcop.net> > Reply-To: Joern Rennecke <amyl...@spamcop.net> > Subject: RFA: Testsuite fixes (2/3): struct padding / alignment > To: gcc-patches@gcc.gnu.org > > I am working with a target port that adds alignment and/or padding to > certain > structures. This causes some tests to fail that assume such padding does > not exist. > > Fixed by adding a packed attribute to the structures in question.
I think you should instead dg-skip the tests on your target. At least ... > Regression tested with x86_64-unknown-linux-gnu X sh-elf . > No change there, as there is no such added alignment / padding by default > on that target. (Although there is the -mpadstruct option; but you'd need > to build appropriate mutilibs to test that.) > > > ----- End forwarded message ----- > > > 2011-07-27 Joern Rennecke <joern.renne...@embecosm.com> > > * g++.dg/ext/strncpy-chk1.C (struct A): Add packed attribute. > > 2011-07-21 Joern Rennecke <joern.renne...@embecosm.com> > > * gcc.dg/builtin-object-size-10.c (drone_source_packet): Make packed. > > * gcc.dg/builtin-stringop-chk-1.c (t): Make packed. > > Index: gcc.dg/builtin-object-size-10.c > =================================================================== > --- gcc.dg/builtin-object-size-10.c > (.../GNU/fsf-gcc/trunk/gcc/testsuite) (revision 2013) > +++ gcc.dg/builtin-object-size-10.c > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -8,7 +8,7 @@ > typedef struct { > char type_str[16]; > char channel_hop; > -} drone_source_packet; > +} __attribute__((packed)) drone_source_packet; > drone_packet * > foo(char *x) > { > Index: gcc.dg/builtin-stringop-chk-1.c > =================================================================== > --- gcc.dg/builtin-stringop-chk-1.c > (.../GNU/fsf-gcc/trunk/gcc/testsuite) (revision 2013) > +++ gcc.dg/builtin-stringop-chk-1.c > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -104,7 +104,7 @@ test2 (const H h) > S *s[3]; > memset (s, 0, sizeof (S) * 3); /* { dg-warning "will always overflow" > "memset" } */ > > - struct T { char a[8]; char b[4]; char c[10]; } t; > + struct T { char a[8]; char b[4]; char c[10]; } __attribute__((packed)) t; > stpcpy (t.c,"Testing..."); /* { dg-warning "will always overflow" "stpcpy" ... for this case I don't see how padding should affect builtin-object-size. If it does, it looks like a bug in the object-size pass. Richard. > } */ > > char b1[7]; > Index: g++.dg/ext/strncpy-chk1.C > =================================================================== > --- g++.dg/ext/strncpy-chk1.C (.../GNU/fsf-gcc/trunk/gcc/testsuite) > (revision 2013) > +++ g++.dg/ext/strncpy-chk1.C > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -2,7 +2,7 @@ > // { dg-do compile } > // { dg-options "-O2" } > > -struct A { char x[12], y[35]; }; > +struct A { char x[12], y[35]; } __attribute__((packed)); > struct B { char z[50]; }; > > inline void > >