OpenCoverage

mbsstr.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/mbsstr.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-
15static -
16 _Bool-
17-
18knuth_morris_pratt_multibyte (const char *haystack, const char *needle,-
19 const char **resultp)-
20{-
21 size_t m = mbslen (needle);-
22 mbchar_t *needle_mbchars;-
23 size_t *table;-
24-
25-
26 void *memory = ((
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p (m)
__builtin_constant_p (m)Description
TRUEnever evaluated
FALSEnever evaluated
&& __builtin_constant_p (sizeof (mbchar_t) + sizeof (size_t))
__builtin_cons...zeof (size_t))Description
TRUEnever evaluated
FALSEnever evaluated
? ((size_t) (
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
27 (9223372036854775807L)
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
28 <
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
29 (18446744073709551615UL)
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
30 ?
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
31 (9223372036854775807L)
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
32 :
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
33 (18446744073709551615UL)
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
0
34 - 1) / (sizeof (mbchar_t) + sizeof (size_t)) < (m)) : ({ __xalloc_count_type __xalloc_count; __builtin_mul_overflow (m, sizeof (mbchar_t) + sizeof (size_t), &__xalloc_count); }))
(__builtin_con...oc_count); }))Description
TRUEnever evaluated
FALSEnever evaluated
?
0
35 ((void *)0) -
36 : (((
((m) * (sizeof...nment_max - 1)Description
TRUEnever evaluated
FALSEnever evaluated
m) * (sizeof (mbchar_t) + sizeof (size_t))) < 4032 - (2 * sa_alignment_max - 1)
((m) * (sizeof...nment_max - 1)Description
TRUEnever evaluated
FALSEnever evaluated
? (void *) (((uintptr_t) (char *) __builtin_alloca (((m) * (sizeof (mbchar_t) + sizeof (size_t))) + 2 * sa_alignment_max - 1) + (2 * sa_alignment_max - 1)) & ~(uintptr_t)(2 * sa_alignment_max - 1)) : mmalloca ((m) * (sizeof (mbchar_t) + sizeof (size_t)))));
0
37 void *table_memory;-
38 if (memory ==
memory == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
39 ((void *)0)
memory == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
40 )-
41 return
never executed: return 0 ;
never executed: return 0 ;
0
42 0
never executed: return 0 ;
0
43 ;
never executed: return 0 ;
0
44 needle_mbchars = memory;-
45 table_memory = needle_mbchars + m;-
46 table = table_memory;-
47-
48-
49 {-
50 mbui_iterator_t iter;-
51 size_t j;-
52-
53 j = 0;-
54 for (((iter).cur.ptr = (needle), (iter).in_shift = -
55 0-
56 , memset (&(iter).state, '\0', sizeof (mbstate_t)), (iter).next_done = -
57 0-
58 ); (mbuiter_multi_next (&(iter)), !(((
((iter).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter).cur).wc_valid
((iter).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
iter).cur).wc == 0
((iter).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)); ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done =
0
59 0-
60 ), j++)-
61 mb_copy (&needle_mbchars[j], &(iter).cur);
never executed: mb_copy (&needle_mbchars[j], &(iter).cur);
0
62 }-
63 {-
64 size_t i, j;-
65-
66-
67 table[1] = 1;-
68 j = 0;-
69-
70 for (i = 2; i < m
i < mDescription
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
71 {-
72-
73-
74-
75-
76 mbchar_t *b = &needle_mbchars[i - 1];-
77-
78 for (;;)-
79 {-
80-
81-
82-
83 if (((*
(*b).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
b).wc_valid
(*b).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(needle_mbchars[j]).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
needle_mbchars[j]).wc_valid
(needle_mbchars[j]).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
? (*b).wc == (needle_mbchars[j]).wc : (*
(*b).bytes == ...hars[j]).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
b).bytes == (needle_mbchars[j]).bytes
(*b).bytes == ...hars[j]).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
&& memcmp ((*b).ptr, (needle_mbchars[j]).ptr, (*b).bytes) == 0
memcmp ((*b).p...b).bytes) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
((*b).wc_valid...).bytes) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
84 {-
85-
86 table[i] = i - ++j;-
87 break;
never executed: break;
0
88 }-
89-
90-
91-
92 if (j == 0
j == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
93 {-
94-
95 table[i] = i;-
96 break;
never executed: break;
0
97 }-
98 j = j - table[j];-
99 }
never executed: end of block
0
100-
101 }
never executed: end of block
0
102 }-
103-
104-
105 {-
106 size_t j;-
107 mbui_iterator_t rhaystack;-
108 mbui_iterator_t phaystack;-
109-
110 *resultp = -
111 ((void *)0)-
112 ;-
113 j = 0;-
114 ((rhaystack).cur.ptr = (haystack), (rhaystack).in_shift = -
115 0-
116 , memset (&(rhaystack).state, '\0', sizeof (mbstate_t)), (rhaystack).next_done = -
117 0-
118 );-
119 ((phaystack).cur.ptr = (haystack), (phaystack).in_shift = -
120 0-
121 , memset (&(phaystack).state, '\0', sizeof (mbstate_t)), (phaystack).next_done = -
122 0-
123 );-
124-
125 while ((mbuiter_multi_next (&(phaystack)), !(((
((phaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
phaystack).cur).wc_valid
((phaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((phaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
phaystack).cur).wc == 0
((phaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
126 if (((
(needle_mbchars[j]).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
needle_mbchars[j]).wc_valid
(needle_mbchars[j]).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((phaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
phaystack).cur).wc_valid
((phaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
? (needle_mbchars[j]).wc == ((phaystack).cur).wc : (
(needle_mbchar...ck).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
needle_mbchars[j]).bytes == ((phaystack).cur).bytes
(needle_mbchar...ck).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
&& memcmp ((needle_mbchars[j]).ptr, ((phaystack).cur).ptr, (needle_mbchars[j]).bytes) == 0
memcmp ((needl...]).bytes) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
((needle_mbcha...).bytes) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
127 {-
128 j++;-
129 ((phaystack).cur.ptr += (phaystack).cur.bytes, (phaystack).next_done = -
130 0-
131 );-
132 if (j == m
j == mDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
133 {-
134-
135 *resultp = (rhaystack).cur.ptr;-
136 break;
never executed: break;
0
137 }-
138 }
never executed: end of block
0
139 else if (j > 0
j > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
140 {-
141-
142 size_t count = table[j];-
143 j -= count;-
144 for (; count > 0
count > 0Description
TRUEnever evaluated
FALSEnever evaluated
; count--)
0
145 {-
146 if (!(mbuiter_multi_next (&(rhaystack)), !(((
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc_valid
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc == 0
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
147 abort ();
never executed: abort ();
0
148 ((rhaystack).cur.ptr += (rhaystack).cur.bytes, (rhaystack).next_done = -
149 0-
150 );-
151 }
never executed: end of block
0
152 }
never executed: end of block
0
153 else-
154 {-
155-
156 if (!(mbuiter_multi_next (&(rhaystack)), !(((
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc_valid
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc == 0
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
157 abort ();
never executed: abort ();
0
158 ((rhaystack).cur.ptr += (rhaystack).cur.bytes, (rhaystack).next_done = -
159 0-
160 );-
161 ((phaystack).cur.ptr += (phaystack).cur.bytes, (phaystack).next_done = -
162 0-
163 );-
164 }
never executed: end of block
0
165 }-
166-
167 freea (memory);-
168 return
never executed: return 1 ;
never executed: return 1 ;
0
169 1
never executed: return 1 ;
0
170 ;
never executed: return 1 ;
0
171}-
172-
173-
174-
175char *-
176mbsstr (const char *haystack, const char *needle)-
177{-
178-
179-
180-
181-
182-
183 if (-
184 (
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEnever evaluated
__ctype_get_mb_cur_max ())
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEnever evaluated
0
185 > 1
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
186 {-
187 mbui_iterator_t iter_needle;-
188-
189 ((iter_needle).cur.ptr = (needle), (iter_needle).in_shift = -
190 0-
191 , memset (&(iter_needle).state, '\0', sizeof (mbstate_t)), (iter_needle).next_done = -
192 0-
193 );-
194 if ((mbuiter_multi_next (&(iter_needle)), !(((
((iter_needle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_needle).cur).wc_valid
((iter_needle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter_needle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
iter_needle).cur).wc == 0
((iter_needle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
195 {-
196 -
197 _Bool -
198 try_kmp = -
199 1-
200 ;-
201 size_t outer_loop_count = 0;-
202 size_t comparison_count = 0;-
203 size_t last_ccount = 0;-
204 mbui_iterator_t iter_needle_last_ccount;-
205-
206 mbui_iterator_t iter_haystack;-
207-
208 ((iter_needle_last_ccount).cur.ptr = (needle), (iter_needle_last_ccount).in_shift = -
209 0-
210 , memset (&(iter_needle_last_ccount).state, '\0', sizeof (mbstate_t)), (iter_needle_last_ccount).next_done = -
211 0-
212 );-
213 ((iter_haystack).cur.ptr = (haystack), (iter_haystack).in_shift = -
214 0-
215 , memset (&(iter_haystack).state, '\0', sizeof (mbstate_t)), (iter_haystack).next_done = -
216 0-
217 );-
218 for (;; ((iter_haystack).cur.ptr += (iter_haystack).cur.bytes, (iter_haystack).next_done = -
219 0-
220 ))-
221 {-
222 if (!(mbuiter_multi_next (&(iter_haystack)), !(((
((iter_haystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_haystack).cur).wc_valid
((iter_haystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter_haystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
iter_haystack).cur).wc == 0
((iter_haystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
223-
224 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
225 ((void *)0)
never executed: return ((void *)0) ;
0
226 ;
never executed: return ((void *)0) ;
0
227-
228-
229-
230 if (try_kmp
try_kmpDescription
TRUEnever evaluated
FALSEnever evaluated
0
231 && outer_loop_count >= 10
outer_loop_count >= 10Description
TRUEnever evaluated
FALSEnever evaluated
0
232 && comparison_count >= 5 * outer_loop_count
comparison_cou...ter_loop_countDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
233 {-
234-
235-
236 size_t count = comparison_count - last_ccount;-
237 for (;-
238 count > 0
count > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& (mbuiter_multi_next (&(iter_needle_last_ccount)), !(((
((iter_needle_....cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_needle_last_ccount).cur).wc_valid
((iter_needle_....cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter_needle_...).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
iter_needle_last_ccount).cur).wc == 0
((iter_needle_...).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
));
0
239 count--)-
240 ((
never executed: ((iter_needle_last_ccount).cur.ptr += (iter_needle_last_ccount).cur.bytes, (iter_needle_last_ccount).next_done = 0 );
iter_needle_last_ccount).cur.ptr += (iter_needle_last_ccount).cur.bytes, (iter_needle_last_ccount).next_done =
never executed: ((iter_needle_last_ccount).cur.ptr += (iter_needle_last_ccount).cur.bytes, (iter_needle_last_ccount).next_done = 0 );
0
241 0
never executed: ((iter_needle_last_ccount).cur.ptr += (iter_needle_last_ccount).cur.bytes, (iter_needle_last_ccount).next_done = 0 );
0
242 );
never executed: ((iter_needle_last_ccount).cur.ptr += (iter_needle_last_ccount).cur.bytes, (iter_needle_last_ccount).next_done = 0 );
0
243 last_ccount = comparison_count;-
244 if (!(mbuiter_multi_next (&(iter_needle_last_ccount)), !(((
((iter_needle_....cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_needle_last_ccount).cur).wc_valid
((iter_needle_....cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter_needle_...).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
iter_needle_last_ccount).cur).wc == 0
((iter_needle_...).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
245 {-
246-
247 const char *result;-
248 -
249 _Bool -
250 success =-
251 knuth_morris_pratt_multibyte (haystack, needle,-
252 &result);-
253 if (success
successDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
254 return
never executed: return (char *) result;
(char *) result;
never executed: return (char *) result;
0
255 try_kmp = -
256 0-
257 ;-
258 }
never executed: end of block
0
259 }
never executed: end of block
0
260-
261 outer_loop_count++;-
262 comparison_count++;-
263 if ((((
((iter_haystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_haystack).cur).wc_valid
((iter_haystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((iter_needle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
iter_needle).cur).wc_valid
((iter_needle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
? ((iter_haystack).cur).wc == ((iter_needle).cur).wc : ((
((iter_haystac...le).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
iter_haystack).cur).bytes == ((iter_needle).cur).bytes
((iter_haystac...le).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
&& memcmp (((iter_haystack).cur).ptr, ((iter_needle).cur).ptr, ((iter_haystack).cur).bytes) == 0
memcmp (((iter...r).bytes) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
(((iter_haysta...).bytes) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
264-
265 {-
266 mbui_iterator_t rhaystack;-
267 mbui_iterator_t rneedle;-
268-
269 memcpy (&rhaystack, &iter_haystack, sizeof (mbui_iterator_t));-
270 ((rhaystack).cur.ptr += (rhaystack).cur.bytes, (rhaystack).next_done = -
271 0-
272 );-
273-
274 ((rneedle).cur.ptr = (needle), (rneedle).in_shift = -
275 0-
276 , memset (&(rneedle).state, '\0', sizeof (mbstate_t)), (rneedle).next_done = -
277 0-
278 );-
279 if (!(mbuiter_multi_next (&(rneedle)), !(((
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rneedle).cur).wc_valid
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rneedle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
rneedle).cur).wc == 0
((rneedle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
280 abort ();
never executed: abort ();
0
281 ((rneedle).cur.ptr += (rneedle).cur.bytes, (rneedle).next_done = -
282 0-
283 );-
284-
285 for (;; ((rhaystack).cur.ptr += (rhaystack).cur.bytes, (rhaystack).next_done = -
286 0-
287 ), ((rneedle).cur.ptr += (rneedle).cur.bytes, (rneedle).next_done = -
288 0-
289 ))-
290 {-
291 if (!(mbuiter_multi_next (&(rneedle)), !(((
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rneedle).cur).wc_valid
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rneedle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
rneedle).cur).wc == 0
((rneedle).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
292-
293 return
never executed: return (char *) (iter_haystack).cur.ptr;
(char *) (iter_haystack).cur.ptr;
never executed: return (char *) (iter_haystack).cur.ptr;
0
294 if (!(mbuiter_multi_next (&(rhaystack)), !(((
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc_valid
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc == 0
((rhaystack).cur).wc == 0Description
TRUEnever evaluated
FALSEnever evaluated
)))
0
295-
296 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
297 ((void *)0)
never executed: return ((void *)0) ;
0
298 ;
never executed: return ((void *)0) ;
0
299 comparison_count++;-
300 if (!(((
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).wc_valid
((rhaystack).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
rneedle).cur).wc_valid
((rneedle).cur).wc_validDescription
TRUEnever evaluated
FALSEnever evaluated
? ((rhaystack).cur).wc == ((rneedle).cur).wc : ((
((rhaystack).c...le).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack).cur).bytes == ((rneedle).cur).bytes
((rhaystack).c...le).cur).bytesDescription
TRUEnever evaluated
FALSEnever evaluated
&& memcmp (((rhaystack).cur).ptr, ((rneedle).cur).ptr, ((rhaystack).cur).bytes) == 0
memcmp (((rhay...r).bytes) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
!(((rhaystack)...).bytes) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
301-
302 break;
never executed: break;
0
303 }
never executed: end of block
0
304 }
never executed: end of block
0
305 }
never executed: end of block
0
306 }
never executed: end of block
0
307 else-
308 return
never executed: return (char *) haystack;
(char *) haystack;
never executed: return (char *) haystack;
0
309 }-
310 else-
311 {-
312 if (*
*needle != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
needle != '\0'
*needle != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
313 {-
314 -
315 _Bool -
316 try_kmp = -
317 1-
318 ;-
319 size_t outer_loop_count = 0;-
320 size_t comparison_count = 0;-
321 size_t last_ccount = 0;-
322 const char *needle_last_ccount = needle;-
323-
324-
325-
326 char b = *needle++;-
327-
328 for (;; haystack++)-
329 {-
330 if (*
*haystack == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
haystack == '\0'
*haystack == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
331-
332 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
333 ((void *)0)
never executed: return ((void *)0) ;
0
334 ;
never executed: return ((void *)0) ;
0
335-
336-
337-
338 if (try_kmp
try_kmpDescription
TRUEnever evaluated
FALSEnever evaluated
0
339 && outer_loop_count >= 10
outer_loop_count >= 10Description
TRUEnever evaluated
FALSEnever evaluated
0
340 && comparison_count >= 5 * outer_loop_count
comparison_cou...ter_loop_countDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
341 {-
342-
343-
344 if (needle_last_ccount !=
needle_last_cc...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
345 ((void *)0)
needle_last_cc...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
346 )-
347 {-
348 needle_last_ccount +=-
349 strnlen (needle_last_ccount,-
350 comparison_count - last_ccount);-
351 if (*
*needle_last_ccount == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
needle_last_ccount == '\0'
*needle_last_ccount == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
352 needle_last_ccount =
never executed: needle_last_ccount = ((void *)0) ;
0
353 ((void *)0)
never executed: needle_last_ccount = ((void *)0) ;
0
354 ;
never executed: needle_last_ccount = ((void *)0) ;
0
355 last_ccount = comparison_count;-
356 }
never executed: end of block
0
357 if (needle_last_ccount ==
needle_last_cc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
358 ((void *)0)
needle_last_cc...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
359 )-
360 {-
361-
362 const unsigned char *result;-
363 -
364 _Bool -
365 success =-
366 knuth_morris_pratt ((const unsigned char *) haystack,-
367 (const unsigned char *) (needle - 1),-
368 strlen (needle - 1),-
369 &result);-
370 if (success
successDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
371 return
never executed: return (char *) result;
(char *) result;
never executed: return (char *) result;
0
372 try_kmp = -
373 0-
374 ;-
375 }
never executed: end of block
0
376 }
never executed: end of block
0
377-
378 outer_loop_count++;-
379 comparison_count++;-
380 if (*
*haystack == bDescription
TRUEnever evaluated
FALSEnever evaluated
haystack == b
*haystack == bDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
381-
382 {-
383 const char *rhaystack = haystack + 1;-
384 const char *rneedle = needle;-
385-
386 for (;; rhaystack++, rneedle++)-
387 {-
388 if (*
*rneedle == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
rneedle == '\0'
*rneedle == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
389-
390 return
never executed: return (char *) haystack;
(char *) haystack;
never executed: return (char *) haystack;
0
391 if (*
*rhaystack == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
rhaystack == '\0'
*rhaystack == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
392-
393 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
394 ((void *)0)
never executed: return ((void *)0) ;
0
395 ;
never executed: return ((void *)0) ;
0
396 comparison_count++;-
397 if (*
*rhaystack != *rneedleDescription
TRUEnever evaluated
FALSEnever evaluated
rhaystack != *rneedle
*rhaystack != *rneedleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
398-
399 break;
never executed: break;
0
400 }
never executed: end of block
0
401 }
never executed: end of block
0
402 }
never executed: end of block
0
403 }
never executed: end of block
0
404 else-
405 return
never executed: return (char *) haystack;
(char *) haystack;
never executed: return (char *) haystack;
0
406 }-
407}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2