Message ID | 201106101628.p5AGSXG20686@lucas.cup.hp.com |
---|---|
State | New |
Headers | show |
On Jun 10, 2011, at 9:28 AM, Steve Ellcey wrote:
> I will check in this testsuite fix as obvious if there are no objections.
Thanks for the comments. When doing a port, having a comment on other port's issues with a testcase, is useful, as you get to say, gosh, I'm in that class too, and just blindly follow the same path for the same reason.
On Fri, 10 Jun 2011, Steve Ellcey wrote: > I will check in this testsuite fix as obvious if there are no objections. But... :) > On IA64 and HPPA the test generates global declarations for the function > as well as calls so the scan-assembler-times fails because it finds the > declarations as well as the two calls. The fix is to make the scans more > specific on IA64 and HPPA. This fix follows the example of what was > done in gcc.dg/tree-ssa/loop-1.c. > > Steve Ellcey > sje@cup.hp.com > > > 2011-06-10 Steve Ellcey <sje@cup.hp.com> > > PR testsuite/48727 > * g++.dg/opt/devirt2.C: Fix scan rules for ia64*-*-* and hppa*-*-*. > > > Index: g++.dg/opt/devirt2.C > =================================================================== > --- g++.dg/opt/devirt2.C (revision 174878) > +++ g++.dg/opt/devirt2.C (working copy) > @@ -1,6 +1,10 @@ > // { dg-do compile } > // { dg-options "-O2" } > -// { dg-final { scan-assembler-times "xyzzy" 2 } } > +// The IA64 and HPPA compilers generate external declarations in addition > +// to the call so those scans need to be more specific. > +// { dg-final { scan-assembler-times "xyzzy" 2 { xfail hppa*-*-* ia64*-*-* } } } JFTR, if you want this to be really right, you should not xfail this part of the test but rather skip it, as the test is at fault, not the targets/gcc. If think it'd be: // { dg-final { scan-assembler-times "xyzzy" 2 { target { ! { hppa*-*-* ia64*-*-* } } } } } > +// { dg-final { scan-assembler-times "br\[^\n\]*xyzzy" 2 { target ia64*-*-* } } } > +// { dg-final { scan-assembler-times "xyzzy\[^\n\]*,%r" 2 { target hppa*-*-* } } } > > struct S { S(); virtual void xyzzy(); }; > struct R { int a; S s; R(); }; > brgds, H-P
Index: g++.dg/opt/devirt2.C =================================================================== --- g++.dg/opt/devirt2.C (revision 174878) +++ g++.dg/opt/devirt2.C (working copy) @@ -1,6 +1,10 @@ // { dg-do compile } // { dg-options "-O2" } -// { dg-final { scan-assembler-times "xyzzy" 2 } } +// The IA64 and HPPA compilers generate external declarations in addition +// to the call so those scans need to be more specific. +// { dg-final { scan-assembler-times "xyzzy" 2 { xfail hppa*-*-* ia64*-*-* } } } +// { dg-final { scan-assembler-times "br\[^\n\]*xyzzy" 2 { target ia64*-*-* } } } +// { dg-final { scan-assembler-times "xyzzy\[^\n\]*,%r" 2 { target hppa*-*-* } } } struct S { S(); virtual void xyzzy(); }; struct R { int a; S s; R(); };