re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2)
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Fri, 8 Jul 2011 10:20:36 +0000 (10:20 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Fri, 8 Jul 2011 10:20:36 +0000 (10:20 +0000)
PR testsuite/48727
* g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*.

From-SVN: r176034

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/devirt2.C

index 11a395c58f67346f39cbdb240cdc25a8d6086774..28d5cf9928e29afbadb1ed49e3711b13d0d85969 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR testsuite/48727
+       * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*.
+
 2011-07-08  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/49662
index e6dd7d62114ea20e0cb309b89d557bd2a0abc776..a16c25ff46a3b374453a97409a59c280ae994f63 100644 (file)
@@ -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(); };