annotate gcc/testsuite/gcc.dg/Wstringop-overflow-26.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 /* PR middle-end/79221 - missing -Wstringop-overflow= on a strcat overflow
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 { dg-do compile }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 { dg-options "-O2 -Wall" } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 extern char* strcat (char*, const char*);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 char d[3];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 void f (int i)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 const char *s = i < 0 ? "01234567" : "89abcd";
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 strcat (d, s); // { dg-warning "'strcat' writing between 7 and 9 bytes into a region of size 3" } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 void g (int i)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 const char *s = i < 0 ? "12345678" : "87654321";
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 strcat (d, s); // { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 }