diff options
author | Martin Sebor <msebor@redhat.com> | 2018-06-29 16:37:54 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2018-06-29 10:37:54 -0600 |
commit | 0bcf7e67ab5a24029a60ba3dc734c4579dd37e7f (patch) | |
tree | 75ee7543ad5d1808098d31a0b5493c145d2de665 /gcc | |
parent | dd2a449867efaef1d2daceadab823d638a7dabcf (diff) | |
download | gcc-0bcf7e67ab5a24029a60ba3dc734c4579dd37e7f.zip gcc-0bcf7e67ab5a24029a60ba3dc734c4579dd37e7f.tar.gz gcc-0bcf7e67ab5a24029a60ba3dc734c4579dd37e7f.tar.bz2 |
strlenopt-46.c: Define strnlen for targets like Solaris 10 that don't define the function.
gcc/testsuite/ChangeLog:
* gcc.dg/strlenopt-46.c: Define strnlen for targets like Solaris 10
that don't define the function.
From-SVN: r262255
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/strlenopt-46.c | 19 |
2 files changed, 23 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc71d59..063b271 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-06-29 Martin Sebor <msebor@redhat.com> + + * gcc.dg/strlenopt-46.c: Define strnlen for targets like Solaris 10 + that don't define the function. + 2018-06-29 Marek Polacek <polacek@redhat.com> PR c++/86184 diff --git a/gcc/testsuite/gcc.dg/strlenopt-46.c b/gcc/testsuite/gcc.dg/strlenopt-46.c index dc6eef7..170b901 100644 --- a/gcc/testsuite/gcc.dg/strlenopt-46.c +++ b/gcc/testsuite/gcc.dg/strlenopt-46.c @@ -1,6 +1,6 @@ /* PR tree-optimization/86204 - wrong strlen result after prior strnlen { dg-do run } - { dg-options "-O2 -Wall" } */ + { dg-options "-O2 -Wall -fdump-tree-optimized" } */ #include "strlenopt.h" @@ -129,3 +129,20 @@ int main (void) gx (2); gx (7); } + + +/* For targets like Solaris 10 that don't define strnlen(). */ + +NOIPA size_t +strnlen (const char *s, size_t n) +{ + size_t len = 0; + while (*s++ && n--) + ++len; + return len; +} + +/* Verify that at least some of the 11 calls to strnlen have been + folded (this number of folded calls may need to be adjusted up + if the strnlen optimization improves, but it should not go down. + { dg-final { scan-tree-dump-times "= strnlen" 7 "optimized" } } */ |