aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr19967.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr19967.c')
-rw-r--r--gcc/testsuite/gcc.dg/pr19967.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr19967.c b/gcc/testsuite/gcc.dg/pr19967.c
new file mode 100644
index 00000000000..85afeafe285
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr19967.c
@@ -0,0 +1,26 @@
+/* PR middle-end/19967
+ These functions mentioned below are supposed to return char *.
+ However, fold_builtin_... had bugs that caused the return types to
+ be const char *. */
+
+/* { dg-do compile } */
+/* { dg-options "-pedantic" } */
+
+char *strchr(const char *, int);
+char *strrchr(const char *, int);
+char *index(const char *, int);
+char *rindex(const char *, int);
+char *strpbrk(const char *, const char *);
+char *strstr(const char *, const char *);
+char *p;
+
+void
+f (void)
+{
+ p = strchr(__func__, 'f');
+ p = strrchr(__func__, 'f');
+ p = index(__func__, 'f');
+ p = rindex(__func__, 'f');
+ p = strpbrk(__func__, "f");
+ p = strstr(__func__, "f");
+}