1 /* Test to verify that valid calls to common restrict-qualified built-in
2 functions declared with no prototype are checked for overlap, and that
3 invalid calls are ignored.
5 { dg-options "-O2 -Wrestrict" } */
7 typedef __SIZE_TYPE__
size_t;
14 #define NO_PROTO /* empty */
24 void test_memcpy_warn (char *d
)
26 memcpy (d
, d
+ 2, 3); /* { dg-warning "accessing 3 bytes at offsets 0 and 2 overlaps 1 byte at offset 2" } */
29 void test_memcpy_nowarn (char *d
)
31 memcpy (d
, d
+ 2, "");
35 void test_strncpy_warn (char *d
)
37 strncpy (d
+ 1, d
+ 3, 5); /* { dg-warning "accessing 5 bytes at offsets 1 and 3 overlaps 2 bytes at offset 3" } */
40 void test_strncpy_nowarn (char *d
)
42 strncpy (d
+ 1, d
+ 3, "");