annotate gcc/testsuite/gcc.dg/pr86114.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR tree-optimization/86114 - ICE in gimple_fold_builtin_strlen with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 an invalid call to strnlen
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 { dg-do compile }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 { dg-options "-O2" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 typedef __SIZE_TYPE__ size_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 extern char* strcmp (const char*, const char*);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 extern char* strncmp (const char*, const char*, size_t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 extern char* strlen (const char*);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 extern char* strnlen (const char*, size_t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 extern char* strcspn (const char*, const char*);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 extern char* strspn (const char*, const char*);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 extern char* strxfrm (const char*, const char*, size_t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 char** q;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 void test_array (const char *s)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 extern char a[8];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 q[0] = strcmp (a, s);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 q[1] = strncmp (a, s, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 q[2] = strlen (a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 q[3] = strnlen (a, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 q[4] = strcspn (a, s);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 q[5] = strspn (a, s);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 q[6] = strxfrm (a, s, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 void test_pointer (const char *s, const char *t)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 q[0] = strcmp (s, t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 q[1] = strncmp (s, t, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 q[2] = strlen (s);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 q[3] = strnlen (s, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 q[4] = strcspn (s, t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 q[5] = strspn (s, t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 q[6] = strxfrm (s, s, 7);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 /* { dg-prune-output "-Wbuiltin-declaration-mismatch" } */