/* { dg-do compile } { dg-options "-Wall" } */ typedef __SIZE_TYPE__ size_t; int memcmp (const void*, const void*, size_t); int strncmp (const char*, const char*, size_t); char* stpncpy (char*, const char*, size_t); char* strncpy (char*, const char*, size_t); extern char a4[4], b5[5]; struct A { char a4[4]; }; extern volatile int i; extern void* volatile ptr; void test_stpncpy (struct A *p) { ptr = stpncpy (a4, b5, 4); ptr = stpncpy (a4, b5, 5); // { dg-warning "writing 5 bytes" } ptr = stpncpy (p->a4, b5, 4); ptr = stpncpy (p->a4, b5, 5); // { dg-warning "writing 5 bytes" } } void test_strncpy (struct A *p) { ptr = strncpy (a4, b5, 4); ptr = strncpy (a4, b5, 5); // { dg-warning "writing 5 bytes" } ptr = strncpy (p->a4, b5, 4); ptr = strncpy (p->a4, b5, 5); // { dg-warning "writing 5 bytes" } }