PR middle-end/78138 - missing warnings on buffer overflow with non-constant source length

gcc/testsuite/ChangeLog:

	PR middle-end/78138
	* gcc.dg/pr78138.c: New test.

From-SVN: r244297
This commit is contained in:
Martin Sebor 2017-01-10 22:35:22 +00:00 committed by Martin Sebor
parent 8cef58751a
commit fefd30867d
2 changed files with 27 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2017-01-10 Martin Sebor <msebor@redhat.com>
PR middle-end/78138
* gcc.dg/pr78138.c: New test.
2017-01-10 David Malcolm <dmalcolm@redhat.com>
PR c++/77949

View File

@ -0,0 +1,22 @@
/* PR middle-end/78138 - missing warnings on buffer overflow with non-constant
source length
{ dg-do compile }
{ dg-options "-O2 -Wformat-length" } */
char d [5];
void* memcpy (void*, const void*, unsigned long);
extern char* strcpy (char*, const char*);
void f (int i, int j)
{
strcpy (d, j ? "12345" : "123456"); /* { dg-warning ".strcpy. writing 6 bytes into a region of size 5" } */
}
void g (void *p)
{
extern unsigned n;
if (n < 17 || 32 < n) n = 7;
memcpy (d, p, n); /* { dg-warning ".memcpy.: writing between 7 and 32 bytes into a region of size 5" } */
};