blob: e8bc327722a5ae346f815eeb6bd087297fd0847d [file] [log] [blame]
/* Verify that -Wstringop-overflow uses context-sensitive range info
even at -O0.
{ dg-do compile }
{ dg-options "-O0 -Wall" } */
extern void* memset (void*, int, __SIZE_TYPE__);
char a[8];
void warn_offset_range (int i)
{
if (i < 4)
i = 4;
memset (a + i, 0, 5); // { dg-warning "writing 5 bytes into a region of size 4 " }
}
void warn_size_range (int i, int n)
{
if (n < 5)
n = 5;
memset (a + 4, 1, n); // { dg-warning "writing between 5 and \\d+ bytes into a region of size 4 " }
}
void warn_offset_and_size_range (int i, int n)
{
if (n < 5)
n = 5;
if (i < 4)
{
if (n < 9)
n = 9;
memset (a + i, 1, n); // { dg-warning "writing between 9 and \\d+ bytes into a region of size 8 " }
}
else
memset (a + i, 0, n); // { dg-warning "writing between 5 and \\d+ bytes into a region of size 4 " }
}