annotate gcc/testsuite/c-c++-common/Wstringop-truncation-3.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/84228 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 /* { dg-options "-Wstringop-truncation -O2 -g" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 char *strncpy (char *, const char *, __SIZE_TYPE__);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 struct S
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 char arr[64];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 foo (struct S *p1, const char *a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 int b = 5, c = 6, d = 7;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 if (a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 goto err;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 strncpy (p1->arr, a, sizeof p1->arr); /* { dg-bogus "specified bound" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 b = 8; c = 9; d = 10;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 p1->arr[3] = '\0';
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 err:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 }