From: Rainer Orth Date: Fri, 8 Jul 2011 10:20:36 +0000 (+0000) Subject: re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a6e71449b1a5b4fa36c99697b65d4710717cd64;p=gcc.git re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2) PR testsuite/48727 * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. From-SVN: r176034 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 11a395c58f6..28d5cf9928e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-07-08 Rainer Orth + + PR testsuite/48727 + * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. + 2011-07-08 Richard Guenther PR tree-optimization/49662 diff --git a/gcc/testsuite/g++.dg/opt/devirt2.C b/gcc/testsuite/g++.dg/opt/devirt2.C index e6dd7d62114..a16c25ff46a 100644 --- a/gcc/testsuite/g++.dg/opt/devirt2.C +++ b/gcc/testsuite/g++.dg/opt/devirt2.C @@ -2,9 +2,14 @@ // { dg-options "-O2" } // 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 { target { ! { hppa*-*-* ia64*-*-hpux* } } } } } -// { dg-final { scan-assembler-times "br\[^\n\]*xyzzy" 2 { target ia64*-*-hpux* } } } -// { dg-final { scan-assembler-times "xyzzy\[^\n\]*,%r" 2 { target hppa*-*-* } } } +// { dg-final { scan-assembler-times "xyzzy" 2 { target { ! { hppa*-*-* ia64*-*-hpux* sparc*-*-* } } } } } +// { dg-final { scan-assembler-times "br\[^\n\]*xyzzy" 2 { target ia64*-*-hpux* } } } +// { dg-final { scan-assembler-times "xyzzy\[^\n\]*,%r" 2 { target hppa*-*-* } } } +// Unless the assembler supports -relax, the 32-bit SPARC compiler generates +// sethi/jmp instead of just call, so the scans need to be more specific. +// With subexpressions, Tcl regexp -inline -all returns both the complete +// match and the subexpressions, so double the count. +// { dg-final { scan-assembler-times "\(jmp|call\)\[^\n\]*xyzzy" 4 { target sparc*-*-* } } } struct S { S(); virtual void xyzzy(); }; struct R { int a; S s; R(); };