Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/Wrestrict-5.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
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. | |
4 { dg-do compile } | |
5 { dg-options "-O2 -Wrestrict" } */ | |
6 | |
7 typedef __SIZE_TYPE__ size_t; | |
8 | |
9 #if __cplusplus | |
10 extern "C" { | |
11 | |
12 #define NO_PROTO ... | |
13 #else | |
14 #define NO_PROTO /* empty */ | |
15 #endif | |
16 | |
17 void* memcpy (); | |
18 char* strncpy (); | |
19 | |
20 #if __cplusplus | |
21 } /* extern "C" */ | |
22 #endif | |
23 | |
24 void test_memcpy_warn (char *d) | |
25 { | |
26 memcpy (d, d + 2, 3); /* { dg-warning "accessing 3 bytes at offsets 0 and 2 overlaps 1 byte at offset 2" } */ | |
27 } | |
28 | |
29 void test_memcpy_nowarn (char *d) | |
30 { | |
31 memcpy (d, d + 2, ""); | |
32 } | |
33 | |
34 | |
35 void test_strncpy_warn (char *d) | |
36 { | |
37 strncpy (d + 1, d + 3, 5); /* { dg-warning "accessing 5 bytes at offsets 1 and 3 overlaps 2 bytes at offset 3" } */ | |
38 } | |
39 | |
40 void test_strncpy_nowarn (char *d) | |
41 { | |
42 strncpy (d + 1, d + 3, ""); | |
43 } |