There are 3 global deletions instead of 2 on SPARC64 and 0 on Alpha since the structure is returned in memory.
Tested on x86-64/Linux and SPARC64/Linux, applied on mainline and 4.7 branch. 2012-09-07 Eric Botcazou <ebotca...@adacore.com> * gcc.dg/pr44194-1.c: Skip on Alpha and adjust regexp for SPARC64. -- Eric Botcazou
Index: gcc.dg/pr44194-1.c =================================================================== --- gcc.dg/pr44194-1.c (revision 190863) +++ gcc.dg/pr44194-1.c (working copy) @@ -1,4 +1,4 @@ -/* { dg-do compile { target { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } } } */ +/* { dg-do compile { target { { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } && { ! alpha*-*-* } } } } */ /* { dg-options "-O2 -fdump-rtl-dse1" } */ /* Restricting to 64-bit targets since 32-bit targets return structures in memory. */ @@ -10,5 +10,5 @@ void func() { struct ints s = foo(); bar(s.a, s.b); } -/* { dg-final { scan-rtl-dump "global deletions = 2" "dse1" } } */ +/* { dg-final { scan-rtl-dump "global deletions = (2|3)" "dse1" } } */ /* { dg-final { cleanup-rtl-dump "dse1" } } */