Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/Wrestrict-10.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* PR tree-optimization/84526 - ICE in generic_overlap | |
2 { dg-do compile } | |
3 { dg-options "-O2 -Wrestrict" } */ | |
4 | |
5 typedef __SIZE_TYPE__ size_t; | |
6 | |
7 extern void* memcpy (void* restrict, const void* restrict, size_t); | |
8 extern char* strcat (char* restrict, const char* restrict); | |
9 extern char* strcpy (char* restrict, const char* restrict); | |
10 extern char* strncat (char* restrict, const char* restrict, size_t); | |
11 extern char* strncpy (char* restrict, const char* restrict, size_t); | |
12 | |
13 struct | |
14 { | |
15 char a[1]; | |
16 } b; | |
17 | |
18 int i; | |
19 size_t n; | |
20 | |
21 void __attribute__ ((noclone, noinline)) | |
22 test_arr_memcpy_1 (void) | |
23 { | |
24 memcpy (&b.a[i], b.a, n); | |
25 } | |
26 | |
27 void __attribute__ ((noclone, noinline)) | |
28 test_arr_memcpy_2 (void) | |
29 { | |
30 memcpy (b.a, &b.a[i], n); | |
31 } | |
32 | |
33 void __attribute__ ((noclone, noinline)) | |
34 test_arr_strcat_1 (void) | |
35 { | |
36 strcat (&b.a[i], b.a); /* { dg-warning "\\\[-Wrestrict" } */ | |
37 } | |
38 | |
39 void __attribute__ ((noclone, noinline)) | |
40 test_arr_strcat_2 (void) | |
41 { | |
42 strcat (b.a, &b.a[i]); /* { dg-warning "\\\[-Wrestrict" } */ | |
43 } | |
44 | |
45 void __attribute__ ((noclone, noinline)) | |
46 test_arr_strncat_1 (void) | |
47 { | |
48 strncat (&b.a[i], b.a, n); /* { dg-warning "\\\[-Wrestrict" } */ | |
49 } | |
50 | |
51 void __attribute__ ((noclone, noinline)) | |
52 test_arr_strncat_2 (void) | |
53 { | |
54 strncat (b.a, &b.a[i], n); /* { dg-warning "\\\[-Wrestrict" } */ | |
55 } | |
56 | |
57 void __attribute__ ((noclone, noinline)) | |
58 test_arr_strcpy_1 (void) | |
59 { | |
60 strcpy (&b.a[i], b.a); /* { dg-warning "\\\[-Wrestrict" } */ | |
61 } | |
62 | |
63 void __attribute__ ((noclone, noinline)) | |
64 test_arr_strcpy_2 (void) | |
65 { | |
66 strcpy (b.a, &b.a[i]); | |
67 } | |
68 | |
69 | |
70 struct S { | |
71 int a; | |
72 char b[10]; | |
73 } d; | |
74 | |
75 void __attribute__ ((noclone, noinline)) | |
76 test_obj_memcpy_1 (void) | |
77 { | |
78 memcpy (d.b, (char *) &d, n); | |
79 } | |
80 | |
81 void __attribute__ ((noclone, noinline)) | |
82 test_obj_memcpy_2 (void) | |
83 { | |
84 memcpy ((char *) &d, d.b, n); | |
85 } | |
86 | |
87 void __attribute__ ((noclone, noinline)) | |
88 test_obj_strcpy_1 (void) | |
89 { | |
90 strcpy (d.b, (char *) &d); | |
91 } | |
92 | |
93 void __attribute__ ((noclone, noinline)) | |
94 test_obj_strcpy_2 (void) | |
95 { | |
96 strcpy ((char *) &d, d.b); | |
97 } | |
98 | |
99 void __attribute__ ((noclone, noinline)) | |
100 test_obj_strncat_1 (void) | |
101 { | |
102 strncat (d.b, (char *) &d, n); /* { dg-warning "\\\[-Wrestrict" } */ | |
103 } | |
104 | |
105 void __attribute__ ((noclone, noinline)) | |
106 test_obj_strncat_2 (void) | |
107 { | |
108 strncat ((char *) &d, d.b, n); /* { dg-warning "\\\[-Wrestrict" } */ | |
109 } | |
110 | |
111 void __attribute__ ((noclone, noinline)) | |
112 test_obj_strncpy_1 (void) | |
113 { | |
114 strncpy (d.b, (char *) &d, n); | |
115 } | |
116 | |
117 void test_obj_strncpy_2 (void) | |
118 { | |
119 strncpy ((char *) &d, d.b, n); | |
120 } |