/* { dg-do compile } */ /* { dg-additional-options "-Wno-stringop-overflow" } */ /* The loop below writes past the end of the global object a. When the loop is transformed into a call to memcpy the buffer overflow is detected and diagnosed by the -Wstringop-overflow option enabled by default. */ typedef unsigned size_t; struct { unsigned char buf[sizeof(long)]; } a; size_t b; int main() { size_t c, i; unsigned char *d; for (; c < sizeof(long);) { d = a.buf; b = 0; for (; b < i; b++) *d++ = '\0'; for (; c < b; c++) *d++ = 'a'; c = 0; for (; i < sizeof(long); i++) ; } }