> The man page is outdated, stpcpy is a standard POSIX2008 function. Sorry for being so 20th century-ish. :-)
> Anyway, in the other gcc.dg/strlenopt-* testcases for USE_GNU I was using > the convention that the name ended with g (i.e. strlenopt-22g.c) and > the test would start with: > /* This test needs runtime that provides stpcpy function. */ > /* { dg-do run { target *-*-linux* } } */ > instead of just > /* { dg-do run } */ Thanks for the tip. Tested on Solaris 8 and Linux, applied on the mainline. 2011-11-05 Eric Botcazou <ebotca...@adacore.com> * gcc.dg/strlenopt-22g.c: New wrapper around... * gcc.dg/strlenopt-22.c: ...this. Do not define USE_GNU and adjust. -- Eric Botcazou
Index: gcc.dg/strlenopt-22g.c =================================================================== --- gcc.dg/strlenopt-22g.c (revision 0) +++ gcc.dg/strlenopt-22g.c (revision 0) @@ -0,0 +1,14 @@ +/* This test needs runtime that provides stpcpy function. */ +/* { dg-do run { target *-*-linux* } } */ +/* { dg-options "-O2 -fdump-tree-strlen" } */ + +#define USE_GNU +#include "strlenopt-22.c" + +/* { dg-final { scan-tree-dump-times "strlen \\(" 0 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "memcpy \\(" 1 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "strcpy \\(" 0 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "strcat \\(" 0 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "strchr \\(" 1 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "stpcpy \\(" 1 "strlen" } } */ +/* { dg-final { cleanup-tree-dump "strlen" } } */ Index: gcc.dg/strlenopt-22.c =================================================================== --- gcc.dg/strlenopt-22.c (revision 181007) +++ gcc.dg/strlenopt-22.c (working copy) @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -fdump-tree-strlen" } */ -#define USE_GNU #include "strlenopt.h" __attribute__((noinline, noclone)) size_t @@ -32,10 +31,9 @@ main () return 0; } -/* { dg-final { scan-tree-dump-times "strlen \\(" 0 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "strlen \\(" 3 "strlen" } } */ /* { dg-final { scan-tree-dump-times "memcpy \\(" 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times "strcpy \\(" 0 "strlen" } } */ +/* { dg-final { scan-tree-dump-times "strcpy \\(" 1 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strcat \\(" 0 "strlen" } } */ /* { dg-final { scan-tree-dump-times "strchr \\(" 1 "strlen" } } */ -/* { dg-final { scan-tree-dump-times "stpcpy \\(" 1 "strlen" } } */ /* { dg-final { cleanup-tree-dump "strlen" } } */