From 87d83e7c3c06ceab91ee2b9349c2282e32df1458 Mon Sep 17 00:00:00 2001 From: ro Date: Fri, 8 Jul 2011 10:20:36 +0000 Subject: [PATCH] PR testsuite/48727 * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176034 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/opt/devirt2.C | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 11a395c..28d5cf9 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 e6dd7d6..a16c25f 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(); }; -- 2.7.4