aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2018-06-29 16:37:54 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2018-06-29 10:37:54 -0600
commit0bcf7e67ab5a24029a60ba3dc734c4579dd37e7f (patch)
tree75ee7543ad5d1808098d31a0b5493c145d2de665 /gcc
parentdd2a449867efaef1d2daceadab823d638a7dabcf (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/strlenopt-46.c19
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" } } */