I will check in this testsuite fix as obvious if there are no objections.
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
s...@cup.hp.com


2011-06-10  Steve Ellcey  <s...@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*-*-* } } 
}
+// { 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(); };

Reply via email to