../3rdparty/pcre/pcre_exec.c

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7static const char rep_min[] = { 0, 0, 1, 1, 0, 0 }; -
8static const char rep_max[] = { 0, 0, 0, 0, 1, 1 }; -
9static int -
10match_ref(int offset, register const pcre_uchar * eptr, int length, match_data *md, -
11 BOOL caseless) -
12{ -
13const pcre_uchar * eptr_start = eptr; -
14register const pcre_uchar * p = md->start_subject + md->offset_vector[offset]; -
15if (length < 0) return -1;
never executed: return -1;
never evaluated: length < 0
0
16 -
17 -
18 -
19 -
20 -
21if (caseless)
never evaluated: caseless
0
22 { -
23 -
24 -
25 if (md->utf)
never evaluated: md->utf
0
26 { -
27 const pcre_uchar * endptr = p + length; -
28 while (p < endptr)
never evaluated: p < endptr
0
29 { -
30 int c, d; -
31 if (eptr >= md->end_subject) return -1;
never executed: return -1;
never evaluated: eptr >= md->end_subject
0
32 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
33 d = *p++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*p++ & 0x3ff)) + 0x10000; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
34 if (c != d && c != (d + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(d) / 128] * 128 + (d) % 128])->other_case)) return -1;
never evaluated: c != d
never evaluated: c != (d + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(d) / 128] * 128 + (d) % 128])->other_case)
never executed: return -1;
0
35 }
never executed: }
0
36 }
never executed: }
0
37 else -
38 -
39 -
40 -
41 -
42 -
43 { -
44 if (eptr + length > md->end_subject) return -1;
never evaluated: eptr + length > md->end_subject
never executed: return -1;
0
45 while (length-- > 0)
never evaluated: length-- > 0
0
46 { -
47 if ((((*p) <= 255u)? ((md->lcc)[*p]):(*p)) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return -1;
never evaluated: (((*p) <= 255u)? ((md->lcc)[*p]):(*p)) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))
never evaluated: ((*p) <= 255u)
never evaluated: ((*eptr) <= 255u)
never executed: return -1;
0
48 p++; -
49 eptr++; -
50 }
never executed: }
0
51 }
never executed: }
0
52 } -
53 -
54 -
55 -
56 -
57else -
58 { -
59 if (eptr + length > md->end_subject) return -1;
never executed: return -1;
never evaluated: eptr + length > md->end_subject
0
60 while (length-- > 0) if (*p++ != *eptr++) return -1;
never executed: return -1;
never evaluated: *p++ != *eptr++
never evaluated: length-- > 0
0
61 }
never executed: }
0
62 -
63return (int)(eptr - eptr_start);
never executed: return (int)(eptr - eptr_start);
0
64} -
65enum { RM1=1, RM2, RM3, RM4, RM5, RM6, RM7, RM8, RM9, RM10, -
66 RM11, RM12, RM13, RM14, RM15, RM16, RM17, RM18, RM19, RM20, -
67 RM21, RM22, RM23, RM24, RM25, RM26, RM27, RM28, RM29, RM30, -
68 RM31, RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40, -
69 RM41, RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50, -
70 RM51, RM52, RM53, RM54, RM55, RM56, RM57, RM58, RM59, RM60, -
71 RM61, RM62, RM63, RM64, RM65, RM66 }; -
72static int -
73match(register const pcre_uchar * eptr, register const pcre_uchar *ecode, -
74 const pcre_uchar * mstart, int offset_top, match_data *md, eptrblock *eptrb, -
75 unsigned int rdepth) -
76{ -
77 -
78 -
79 -
80 -
81register int rrc; -
82register int i; -
83register unsigned int c; -
84register BOOL utf; -
85 -
86BOOL minimize, possessive; -
87BOOL caseless; -
88int condcode; -
89const pcre_uchar *charptr; -
90 -
91const pcre_uchar *callpat; -
92const pcre_uchar *data; -
93const pcre_uchar *next; -
94const pcre_uchar * pp; -
95const pcre_uchar *prev; -
96const pcre_uchar * saved_eptr; -
97 -
98recursion_info new_recursive; -
99 -
100BOOL cur_is_word; -
101BOOL condition; -
102BOOL prev_is_word; -
103 -
104 -
105int prop_type; -
106int prop_value; -
107int prop_fail_result; -
108int oclength; -
109pcre_uchar occhars[6]; -
110 -
111 -
112int codelink; -
113int ctype; -
114int length; -
115int max; -
116int min; -
117int number; -
118int offset; -
119int op; -
120int save_capture_last; -
121int save_offset1, save_offset2, save_offset3; -
122int stacksave[30]; -
123 -
124eptrblock newptrb; -
125 -
126 -
127 -
128 -
129 -
130 -
131 -
132if (ecode == ((void *)0))
partially evaluated: ecode == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1687
0-1687
133 { -
134 if (rdepth == 0)
never evaluated: rdepth == 0
0
135 return match((const pcre_uchar *)&rdepth, ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 1);
never executed: return match((const pcre_uchar *)&rdepth, ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 1);
0
136 else -
137 { -
138 int len = (char *)&rdepth - (char *)eptr; -
139 return (len > 0)? -len : len;
never executed: return (len > 0)? -len : len;
0
140 } -
141 } -
142prop_value = 0; -
143prop_fail_result = 0; -
144TAIL_RECURSE:
code before this statement executed: TAIL_RECURSE:
Execution Count:1687
1687
145utf = md->utf; -
146 -
147 -
148 -
149 -
150 -
151 -
152 -
153if (md->match_call_count++ >= md->match_limit) return (-8);
never executed: return (-8);
partially evaluated: md->match_call_count++ >= md->match_limit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2766
0-2766
154if (rdepth >= md->match_limit_recursion) return (-21);
never executed: return (-21);
partially evaluated: rdepth >= md->match_limit_recursion
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2766
0-2766
155if (md->match_function_type == 2)
partially evaluated: md->match_function_type == 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2766
0-2766
156 { -
157 newptrb.epb_saved_eptr = eptr; -
158 newptrb.epb_prev = eptrb; -
159 eptrb = &newptrb; -
160 md->match_function_type = 0; -
161 }
never executed: }
0
162 -
163 -
164 -
165for (;;) -
166 { -
167 minimize = possessive = 0; -
168 op = *ecode; -
169 -
170 switch(op) -
171 { -
172 case OP_MARK: -
173 md->nomatch_mark = ecode + 2; -
174 md->mark = ((void *)0); -
175 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); -
176 -
177 if ((rrc == 1 || rrc == (-999)) &&
never evaluated: rrc == 1
never evaluated: rrc == (-999)
0
178 md->mark == ((void *)0)) md->mark = ecode + 2;
never executed: md->mark = ecode + 2;
never evaluated: md->mark == ((void *)0)
0
179 else if (rrc == (-993) &&
never evaluated: rrc == (-993)
0
180 _pcre16_strcmp_uc_uc((ecode + 2), (md->start_match_ptr)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((ecode + 2), (md->start_match_ptr)) == 0
0
181 { -
182 md->start_match_ptr = eptr; -
183 return (-994);
never executed: return (-994);
0
184 } -
185 return rrc;
never executed: return rrc;
0
186 -
187 case OP_FAIL: -
188 return 0;
never executed: return 0;
0
189 -
190 -
191 -
192 case OP_COMMIT: -
193 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
194 -
195 if (rrc != 0 && rrc != (-995) &&
never evaluated: rrc != 0
never evaluated: rrc != (-995)
0
196 rrc != (-994) && rrc != (-993) &&
never evaluated: rrc != (-994)
never evaluated: rrc != (-993)
0
197 rrc != (-992))
never evaluated: rrc != (-992)
0
198 return rrc;
never executed: return rrc;
0
199 return (-998);
never executed: return (-998);
0
200 -
201 -
202 -
203 case OP_PRUNE: -
204 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
205 -
206 if (rrc != 0 && rrc != (-992)) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
never evaluated: rrc != (-992)
0
207 return (-995);
never executed: return (-995);
0
208 -
209 case OP_PRUNE_ARG: -
210 md->nomatch_mark = ecode + 2; -
211 md->mark = ((void *)0); -
212 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); -
213 -
214 if ((rrc == 1 || rrc == (-999)) &&
never evaluated: rrc == 1
never evaluated: rrc == (-999)
0
215 md->mark == ((void *)0)) md->mark = ecode + 2;
never evaluated: md->mark == ((void *)0)
never executed: md->mark = ecode + 2;
0
216 if (rrc != 0 && rrc != (-992)) return rrc;
never evaluated: rrc != 0
never evaluated: rrc != (-992)
never executed: return rrc;
0
217 return (-995);
never executed: return (-995);
0
218 -
219 -
220 -
221 case OP_SKIP: -
222 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
223 -
224 if (rrc != 0 && rrc != (-995) && rrc != (-992))
never evaluated: rrc != 0
never evaluated: rrc != (-995)
never evaluated: rrc != (-992)
0
225 return rrc;
never executed: return rrc;
0
226 md->start_match_ptr = eptr; -
227 return (-994);
never executed: return (-994);
0
228 -
229 -
230 -
231 -
232 -
233 case OP_SKIP_ARG: -
234 if (md->ignore_skip_arg)
never evaluated: md->ignore_skip_arg
0
235 { -
236 ecode += _pcre16_OP_lengths[*ecode] + ecode[1]; -
237 break;
never executed: break;
0
238 } -
239 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); -
240 -
241 if (rrc != 0 && rrc != (-995) && rrc != (-992))
never evaluated: rrc != 0
never evaluated: rrc != (-995)
never evaluated: rrc != (-992)
0
242 return rrc;
never executed: return rrc;
0
243 -
244 -
245 -
246 -
247 -
248 -
249 md->start_match_ptr = ecode + 2; -
250 return (-993);
never executed: return (-993);
0
251 -
252 -
253 -
254 -
255 -
256 case OP_THEN: -
257 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
258 -
259 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
260 md->start_match_ptr = ecode; -
261 return (-992);
never executed: return (-992);
0
262 -
263 case OP_THEN_ARG: -
264 md->nomatch_mark = ecode + 2; -
265 md->mark = ((void *)0); -
266 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); -
267 -
268 if ((rrc == 1 || rrc == (-999)) &&
never evaluated: rrc == 1
never evaluated: rrc == (-999)
0
269 md->mark == ((void *)0)) md->mark = ecode + 2;
never evaluated: md->mark == ((void *)0)
never executed: md->mark = ecode + 2;
0
270 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
271 md->start_match_ptr = ecode; -
272 return (-992);
never executed: return (-992);
0
273 case OP_ONCE_NC: -
274 prev = ecode; -
275 saved_eptr = eptr; -
276 data = md->mark; -
277 do -
278 { -
279 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
280 if (rrc == 1)
never evaluated: rrc == 1
0
281 { -
282 mstart = md->start_match_ptr; -
283 break;
never executed: break;
0
284 } -
285 if (rrc == (-992))
never evaluated: rrc == (-992)
0
286 { -
287 next = ecode + (ecode[1]); -
288 if (md->start_match_ptr < next &&
never evaluated: md->start_match_ptr < next
0
289 (*ecode == OP_ALT || *next == OP_ALT))
never evaluated: *ecode == OP_ALT
never evaluated: *next == OP_ALT
0
290 rrc = 0;
never executed: rrc = 0;
0
291 }
never executed: }
0
292 -
293 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
294 ecode += (ecode[1]); -
295 md->mark = data; -
296 }
never executed: }
0
297 while (*ecode == OP_ALT);
never evaluated: *ecode == OP_ALT
0
298 -
299 -
300 -
301 if (*ecode != OP_ONCE_NC && *ecode != OP_ALT) return 0;
never evaluated: *ecode != OP_ONCE_NC
never evaluated: *ecode != OP_ALT
never executed: return 0;
0
302 -
303 -
304 -
305 -
306 do ecode += (ecode[1]); while (*ecode == OP_ALT);
never evaluated: *ecode == OP_ALT
never executed: ecode += (ecode[1]);
0
307 -
308 offset_top = md->end_offset_top; -
309 eptr = md->end_match_ptr; -
310 -
311 -
312 -
313 -
314 -
315 -
316 if (*ecode == OP_KET || eptr == saved_eptr)
never evaluated: *ecode == OP_KET
never evaluated: eptr == saved_eptr
0
317 { -
318 ecode += 1+1; -
319 break;
never executed: break;
0
320 } -
321 -
322 -
323 -
324 -
325 -
326 if (*ecode == OP_KETRMIN)
never evaluated: *ecode == OP_KETRMIN
0
327 { -
328 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
329 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
330 ecode = prev; -
331 goto TAIL_RECURSE;
never executed: goto TAIL_RECURSE;
0
332 } -
333 else -
334 { -
335 md->match_function_type = 2; -
336 rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); -
337 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
338 ecode += 1 + 1; -
339 goto TAIL_RECURSE;
never executed: goto TAIL_RECURSE;
0
340 } -
341 case OP_CBRA: -
342 case OP_SCBRA: -
343 number = ecode[1+1]; -
344 offset = number << 1; -
345 if (offset < md->offset_max)
partially evaluated: offset < md->offset_max
TRUEFALSE
yes
Evaluation Count:208
no
Evaluation Count:0
0-208
346 { -
347 save_offset1 = md->offset_vector[offset]; -
348 save_offset2 = md->offset_vector[offset+1]; -
349 save_offset3 = md->offset_vector[md->offset_end - number]; -
350 save_capture_last = md->capture_last; -
351 data = md->mark; -
352 -
353 ; -
354 md->offset_vector[md->offset_end - number] = -
355 (int)(eptr - md->start_subject); -
356 -
357 for (;;) -
358 { -
359 if (op >= OP_SBRA) md->match_function_type = 2;
partially evaluated: op >= OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
never executed: md->match_function_type = 2;
0-208
360 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
361 -
362 if (rrc == (-996)) break;
partially evaluated: rrc == (-996)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
never executed: break;
0-208
363 if (rrc == (-992))
partially evaluated: rrc == (-992)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
0-208
364 { -
365 next = ecode + (ecode[1]); -
366 if (md->start_match_ptr < next &&
never evaluated: md->start_match_ptr < next
0
367 (*ecode == OP_ALT || *next == OP_ALT))
never evaluated: *ecode == OP_ALT
never evaluated: *next == OP_ALT
0
368 rrc = 0;
never executed: rrc = 0;
0
369 }
never executed: }
0
370 -
371 -
372 -
373 if (rrc != 0) return rrc;
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:155
yes
Evaluation Count:53
executed: return rrc;
Execution Count:155
53-155
374 md->capture_last = save_capture_last; -
375 ecode += (ecode[1]); -
376 md->mark = data; -
377 if (*ecode != OP_ALT) break;
partially evaluated: *ecode != OP_ALT
TRUEFALSE
yes
Evaluation Count:53
no
Evaluation Count:0
executed: break;
Execution Count:53
0-53
378 }
never executed: }
0
379 -
380 ; -
381 md->offset_vector[offset] = save_offset1; -
382 md->offset_vector[offset+1] = save_offset2; -
383 md->offset_vector[md->offset_end - number] = save_offset3; -
384 -
385 -
386 -
387 return rrc;
executed: return rrc;
Execution Count:53
53
388 } -
389 -
390 -
391 -
392 -
393 -
394 -
395 -
396 ; -
397 case OP_ONCE:
code before this statement never executed: case OP_ONCE:
0
398 case OP_BRA: -
399 case OP_SBRA: -
400 ; -
401 -
402 for (;;) -
403 { -
404 if (op >= OP_SBRA || op == OP_ONCE) md->match_function_type = 2;
partially evaluated: op >= OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1117
partially evaluated: op == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1117
never executed: md->match_function_type = 2;
0-1117
405 -
406 -
407 -
408 -
409 -
410 else if (!md->hasthen && ecode[(ecode[1])] != OP_ALT)
partially evaluated: !md->hasthen
TRUEFALSE
yes
Evaluation Count:1117
no
Evaluation Count:0
evaluated: ecode[(ecode[1])] != OP_ALT
TRUEFALSE
yes
Evaluation Count:1055
yes
Evaluation Count:62
0-1117
411 { -
412 ecode += _pcre16_OP_lengths[*ecode]; -
413 goto TAIL_RECURSE;
executed: goto TAIL_RECURSE;
Execution Count:1055
1055
414 } -
415 -
416 -
417 -
418 data = md->mark; -
419 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
420 -
421 -
422 -
423 -
424 -
425 if (rrc == (-992))
partially evaluated: rrc == (-992)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:62
0-62
426 { -
427 next = ecode + (ecode[1]); -
428 if (md->start_match_ptr < next &&
never evaluated: md->start_match_ptr < next
0
429 (*ecode == OP_ALT || *next == OP_ALT))
never evaluated: *ecode == OP_ALT
never evaluated: *next == OP_ALT
0
430 rrc = 0;
never executed: rrc = 0;
0
431 }
never executed: }
0
432 -
433 if (rrc != 0)
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:54
8-54
434 { -
435 if (rrc == (-996))
partially evaluated: rrc == (-996)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
436 { -
437 const pcre_uchar *scode = ecode; -
438 if (*scode != OP_ONCE)
never evaluated: *scode != OP_ONCE
0
439 { -
440 while (*scode == OP_ALT) scode += (scode[1]);
never evaluated: *scode == OP_ALT
never executed: scode += (scode[1]);
0
441 scode -= (scode[1]); -
442 }
never executed: }
0
443 if (md->once_target == scode) rrc = 0;
never evaluated: md->once_target == scode
never executed: rrc = 0;
0
444 }
never executed: }
0
445 return rrc;
executed: return rrc;
Execution Count:8
8
446 } -
447 ecode += (ecode[1]); -
448 md->mark = data; -
449 if (*ecode != OP_ALT) break;
partially evaluated: *ecode != OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:54
never executed: break;
0-54
450 }
executed: }
Execution Count:54
54
451 -
452 return 0;
never executed: return 0;
0
453 case OP_CBRAPOS: -
454 case OP_SCBRAPOS: -
455 cur_is_word = 0; -
456 -
457 POSSESSIVE_CAPTURE:
code before this statement never executed: POSSESSIVE_CAPTURE:
0
458 number = ecode[1+1]; -
459 offset = number << 1; -
460 if (offset < md->offset_max)
never evaluated: offset < md->offset_max
0
461 { -
462 prev_is_word = 0; -
463 codelink = (int)(ecode - md->start_code); -
464 -
465 save_offset1 = md->offset_vector[offset]; -
466 save_offset2 = md->offset_vector[offset+1]; -
467 save_offset3 = md->offset_vector[md->offset_end - number]; -
468 save_capture_last = md->capture_last; -
469 -
470 ; -
471 for (;;) -
472 { -
473 md->offset_vector[md->offset_end - number] = -
474 (int)(eptr - md->start_subject); -
475 if (op >= OP_SBRA) md->match_function_type = 2;
never evaluated: op >= OP_SBRA
never executed: md->match_function_type = 2;
0
476 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
477 -
478 if (rrc == (-997))
never evaluated: rrc == (-997)
0
479 { -
480 offset_top = md->end_offset_top; -
481 eptr = md->end_match_ptr; -
482 ecode = md->start_code + codelink; -
483 save_capture_last = md->capture_last; -
484 prev_is_word = 1; -
485 continue;
never executed: continue;
0
486 } -
487 -
488 -
489 -
490 -
491 if (rrc == (-992))
never evaluated: rrc == (-992)
0
492 { -
493 next = ecode + (ecode[1]); -
494 if (md->start_match_ptr < next &&
never evaluated: md->start_match_ptr < next
0
495 (*ecode == OP_ALT || *next == OP_ALT))
never evaluated: *ecode == OP_ALT
never evaluated: *next == OP_ALT
0
496 rrc = 0;
never executed: rrc = 0;
0
497 }
never executed: }
0
498 -
499 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
500 md->capture_last = save_capture_last; -
501 ecode += (ecode[1]); -
502 if (*ecode != OP_ALT) break;
never evaluated: *ecode != OP_ALT
never executed: break;
0
503 }
never executed: }
0
504 -
505 if (!prev_is_word)
never evaluated: !prev_is_word
0
506 { -
507 md->offset_vector[offset] = save_offset1; -
508 md->offset_vector[offset+1] = save_offset2; -
509 md->offset_vector[md->offset_end - number] = save_offset3; -
510 }
never executed: }
0
511 -
512 if (cur_is_word || prev_is_word)
never evaluated: cur_is_word
never evaluated: prev_is_word
0
513 { -
514 ecode += 1 + 1; -
515 break;
never executed: break;
0
516 } -
517 -
518 return 0;
never executed: return 0;
0
519 } -
520 -
521 -
522 -
523 -
524 -
525 -
526 -
527 ; -
528 case OP_BRAPOS:
code before this statement never executed: case OP_BRAPOS:
0
529 case OP_SBRAPOS: -
530 cur_is_word = 0; -
531 -
532 POSSESSIVE_NON_CAPTURE:
code before this statement never executed: POSSESSIVE_NON_CAPTURE:
0
533 prev_is_word = 0; -
534 codelink = (int)(ecode - md->start_code); -
535 -
536 for (;;) -
537 { -
538 if (op >= OP_SBRA) md->match_function_type = 2;
never evaluated: op >= OP_SBRA
never executed: md->match_function_type = 2;
0
539 rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); -
540 -
541 if (rrc == (-997))
never evaluated: rrc == (-997)
0
542 { -
543 offset_top = md->end_offset_top; -
544 eptr = md->end_match_ptr; -
545 ecode = md->start_code + codelink; -
546 prev_is_word = 1; -
547 continue;
never executed: continue;
0
548 } -
549 -
550 -
551 -
552 -
553 if (rrc == (-992))
never evaluated: rrc == (-992)
0
554 { -
555 next = ecode + (ecode[1]); -
556 if (md->start_match_ptr < next &&
never evaluated: md->start_match_ptr < next
0
557 (*ecode == OP_ALT || *next == OP_ALT))
never evaluated: *ecode == OP_ALT
never evaluated: *next == OP_ALT
0
558 rrc = 0;
never executed: rrc = 0;
0
559 }
never executed: }
0
560 -
561 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
562 ecode += (ecode[1]); -
563 if (*ecode != OP_ALT) break;
never evaluated: *ecode != OP_ALT
never executed: break;
0
564 }
never executed: }
0
565 -
566 if (prev_is_word || cur_is_word)
never evaluated: prev_is_word
never evaluated: cur_is_word
0
567 { -
568 ecode += 1 + 1; -
569 break;
never executed: break;
0
570 } -
571 return 0;
never executed: return 0;
0
572 case OP_COND: -
573 case OP_SCOND: -
574 codelink = (ecode[1]); -
575 -
576 -
577 -
578 -
579 if (ecode[1 +1] == OP_CALLOUT)
partially evaluated: ecode[1 +1] == OP_CALLOUT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
580 { -
581 if (pcre16_callout != ((void *)0))
never evaluated: pcre16_callout != ((void *)0)
0
582 { -
583 pcre16_callout_block cb; -
584 cb.version = 2; -
585 cb.callout_number = ecode[1 +2]; -
586 cb.offset_vector = md->offset_vector; -
587 -
588 -
589 -
590 cb.subject = (const unsigned short *)md->start_subject; -
591 -
592 cb.subject_length = (int)(md->end_subject - md->start_subject); -
593 cb.start_match = (int)(mstart - md->start_subject); -
594 cb.current_position = (int)(eptr - md->start_subject); -
595 cb.pattern_position = (ecode[1 + 3]); -
596 cb.next_item_length = (ecode[3 + 2*1]); -
597 cb.capture_top = offset_top/2; -
598 cb.capture_last = md->capture_last; -
599 cb.callout_data = md->callout_data; -
600 cb.mark = md->nomatch_mark; -
601 if ((rrc = (*pcre16_callout)(&cb)) > 0) return 0;
never evaluated: (rrc = (*pcre16_callout)(&cb)) > 0
never executed: return 0;
0
602 if (rrc < 0) return rrc;
never evaluated: rrc < 0
never executed: return rrc;
0
603 }
never executed: }
0
604 ecode += _pcre16_OP_lengths[OP_CALLOUT]; -
605 }
never executed: }
0
606 -
607 condcode = ecode[1 +1]; -
608 -
609 -
610 -
611 if (condcode == OP_RREF || condcode == OP_NRREF)
partially evaluated: condcode == OP_RREF
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
never evaluated: condcode == OP_NRREF
0-12
612 { -
613 if (md->recursive == ((void *)0))
evaluated: md->recursive == ((void *)0)
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:8
4-8
614 { -
615 condition = 0; -
616 ecode += (ecode[1]); -
617 }
executed: }
Execution Count:4
4
618 else -
619 { -
620 int recno = ecode[1 + 2]; -
621 condition = (recno == 0xffff || recno == md->recursive->group_num);
partially evaluated: recno == 0xffff
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
never evaluated: recno == md->recursive->group_num
0-8
622 -
623 -
624 -
625 -
626 -
627 -
628 if (!condition && condcode == OP_NRREF)
partially evaluated: !condition
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never evaluated: condcode == OP_NRREF
0-8
629 { -
630 pcre_uchar *slotA = md->name_table; -
631 for (i = 0; i < md->name_count; i++)
never evaluated: i < md->name_count
0
632 { -
633 if (slotA[0] == recno) break;
never evaluated: slotA[0] == recno
never executed: break;
0
634 slotA += md->name_entry_size; -
635 }
never executed: }
0
636 -
637 -
638 -
639 -
640 -
641 if (i < md->name_count)
never evaluated: i < md->name_count
0
642 { -
643 pcre_uchar *slotB = slotA; -
644 while (slotB > md->name_table)
never evaluated: slotB > md->name_table
0
645 { -
646 slotB -= md->name_entry_size; -
647 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
648 { -
649 condition = slotB[0] == md->recursive->group_num; -
650 if (condition) break;
never evaluated: condition
never executed: break;
0
651 }
never executed: }
0
652 else break;
never executed: break;
0
653 } -
654 -
655 -
656 -
657 if (!condition)
never evaluated: !condition
0
658 { -
659 slotB = slotA; -
660 for (i++; i < md->name_count; i++)
never evaluated: i < md->name_count
0
661 { -
662 slotB += md->name_entry_size; -
663 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
664 { -
665 condition = slotB[0] == md->recursive->group_num; -
666 if (condition) break;
never executed: break;
never evaluated: condition
0
667 }
never executed: }
0
668 else break;
never executed: break;
0
669 } -
670 }
never executed: }
0
671 }
never executed: }
0
672 }
never executed: }
0
673 -
674 -
675 -
676 ecode += condition? 1 + 1 : (ecode[1]);
partially evaluated: condition
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
677 }
executed: }
Execution Count:8
8
678 } -
679 -
680 else if (condcode == OP_CREF || condcode == OP_NCREF)
never evaluated: condcode == OP_CREF
never evaluated: condcode == OP_NCREF
0
681 { -
682 offset = ecode[1 +2] << 1; -
683 condition = offset < offset_top && md->offset_vector[offset] >= 0;
never evaluated: offset < offset_top
never evaluated: md->offset_vector[offset] >= 0
0
684 -
685 -
686 -
687 -
688 -
689 -
690 if (!condition && condcode == OP_NCREF)
never evaluated: !condition
never evaluated: condcode == OP_NCREF
0
691 { -
692 int refno = offset >> 1; -
693 pcre_uchar *slotA = md->name_table; -
694 -
695 for (i = 0; i < md->name_count; i++)
never evaluated: i < md->name_count
0
696 { -
697 if (slotA[0] == refno) break;
never executed: break;
never evaluated: slotA[0] == refno
0
698 slotA += md->name_entry_size; -
699 }
never executed: }
0
700 -
701 -
702 -
703 -
704 -
705 if (i < md->name_count)
never evaluated: i < md->name_count
0
706 { -
707 pcre_uchar *slotB = slotA; -
708 while (slotB > md->name_table)
never evaluated: slotB > md->name_table
0
709 { -
710 slotB -= md->name_entry_size; -
711 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
712 { -
713 offset = slotB[0] << 1; -
714 condition = offset < offset_top &&
never evaluated: offset < offset_top
0
715 md->offset_vector[offset] >= 0;
never evaluated: md->offset_vector[offset] >= 0
0
716 if (condition) break;
never executed: break;
never evaluated: condition
0
717 }
never executed: }
0
718 else break;
never executed: break;
0
719 } -
720 -
721 -
722 -
723 if (!condition)
never evaluated: !condition
0
724 { -
725 slotB = slotA; -
726 for (i++; i < md->name_count; i++)
never evaluated: i < md->name_count
0
727 { -
728 slotB += md->name_entry_size; -
729 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
730 { -
731 offset = slotB[0] << 1; -
732 condition = offset < offset_top &&
never evaluated: offset < offset_top
0
733 md->offset_vector[offset] >= 0;
never evaluated: md->offset_vector[offset] >= 0
0
734 if (condition) break;
never executed: break;
never evaluated: condition
0
735 }
never executed: }
0
736 else break;
never executed: break;
0
737 } -
738 }
never executed: }
0
739 }
never executed: }
0
740 }
never executed: }
0
741 -
742 -
743 -
744 ecode += condition? 1 + 1 : (ecode[1]);
never evaluated: condition
0
745 }
never executed: }
0
746 -
747 else if (condcode == OP_DEF)
never evaluated: condcode == OP_DEF
0
748 { -
749 condition = 0; -
750 ecode += (ecode[1]); -
751 }
never executed: }
0
752 -
753 -
754 -
755 -
756 -
757 else -
758 { -
759 md->match_function_type = 1; -
760 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); -
761 if (rrc == 1)
never evaluated: rrc == 1
0
762 { -
763 if (md->end_offset_top > offset_top)
never evaluated: md->end_offset_top > offset_top
0
764 offset_top = md->end_offset_top;
never executed: offset_top = md->end_offset_top;
0
765 condition = 1; -
766 ecode += 1 + 1 + (ecode[1 + 2]); -
767 while (*ecode == OP_ALT) ecode += (ecode[1]);
never executed: ecode += (ecode[1]);
never evaluated: *ecode == OP_ALT
0
768 }
never executed: }
0
769 -
770 -
771 -
772 -
773 else if (rrc != 0 && rrc != (-992))
never evaluated: rrc != 0
never evaluated: rrc != (-992)
0
774 { -
775 return rrc;
never executed: return rrc;
0
776 } -
777 else -
778 { -
779 condition = 0; -
780 ecode += codelink; -
781 }
never executed: }
0
782 } -
783 if (condition || *ecode == OP_ALT)
evaluated: condition
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:4
partially evaluated: *ecode == OP_ALT
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-8
784 { -
785 if (op != OP_SCOND)
partially evaluated: op != OP_SCOND
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
786 { -
787 ecode += 1 + 1; -
788 goto TAIL_RECURSE;
executed: goto TAIL_RECURSE;
Execution Count:12
12
789 } -
790 -
791 md->match_function_type = 2; -
792 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
793 return rrc;
never executed: return rrc;
0
794 } -
795 -
796 -
797 -
798 else -
799 { -
800 ecode += 1 + 1; -
801 }
never executed: }
0
802 break;
never executed: break;
0
803 -
804 -
805 -
806 -
807 -
808 case OP_CLOSE: -
809 number = ecode[1]; -
810 offset = number << 1; -
811 -
812 -
813 -
814 -
815 -
816 -
817 md->capture_last = number; -
818 if (offset >= md->offset_max) md->offset_overflow = 1; else
never executed: md->offset_overflow = 1;
never evaluated: offset >= md->offset_max
0
819 { -
820 md->offset_vector[offset] = -
821 md->offset_vector[md->offset_end - number]; -
822 md->offset_vector[offset+1] = (int)(eptr - md->start_subject); -
823 if (offset_top <= offset) offset_top = offset + 2;
never executed: offset_top = offset + 2;
never evaluated: offset_top <= offset
0
824 }
never executed: }
0
825 ecode += 1 + 1; -
826 break;
never executed: break;
0
827 -
828 -
829 -
830 -
831 case OP_END: -
832 case OP_ACCEPT: -
833 case OP_ASSERT_ACCEPT: -
834 -
835 -
836 -
837 -
838 -
839 -
840 if (eptr == mstart && op != OP_ASSERT_ACCEPT &&
evaluated: eptr == mstart
TRUEFALSE
yes
Evaluation Count:174
yes
Evaluation Count:406
partially evaluated: op != OP_ASSERT_ACCEPT
TRUEFALSE
yes
Evaluation Count:174
no
Evaluation Count:0
0-406
841 md->recursive == ((void *)0) &&
partially evaluated: md->recursive == ((void *)0)
TRUEFALSE
yes
Evaluation Count:174
no
Evaluation Count:0
0-174
842 (md->notempty ||
partially evaluated: md->notempty
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:174
0-174
843 (md->notempty_atstart &&
evaluated: md->notempty_atstart
TRUEFALSE
yes
Evaluation Count:100
yes
Evaluation Count:74
74-100
844 mstart == md->start_subject + md->start_offset)))
partially evaluated: mstart == md->start_subject + md->start_offset
TRUEFALSE
yes
Evaluation Count:100
no
Evaluation Count:0
0-100
845 return 0;
executed: return 0;
Execution Count:100
100
846 -
847 -
848 -
849 md->end_match_ptr = eptr; -
850 md->end_offset_top = offset_top; -
851 md->start_match_ptr = mstart; -
852 -
853 -
854 -
855 -
856 rrc = (op == OP_END)? 1 : (-999);
partially evaluated: (op == OP_END)
TRUEFALSE
yes
Evaluation Count:480
no
Evaluation Count:0
0-480
857 return rrc;
executed: return rrc;
Execution Count:480
480
858 case OP_ASSERT: -
859 case OP_ASSERTBACK: -
860 data = md->mark; -
861 if (md->match_function_type == 1)
never evaluated: md->match_function_type == 1
0
862 { -
863 condition = 1; -
864 md->match_function_type = 0; -
865 }
never executed: }
0
866 else condition = 0;
never executed: condition = 0;
0
867 -
868 do -
869 { -
870 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); -
871 if (rrc == 1 || rrc == (-999))
never evaluated: rrc == 1
never evaluated: rrc == (-999)
0
872 { -
873 mstart = md->start_match_ptr; -
874 break;
never executed: break;
0
875 } -
876 -
877 -
878 -
879 -
880 if (rrc != 0 && rrc != (-992)) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
never evaluated: rrc != (-992)
0
881 ecode += (ecode[1]); -
882 md->mark = data; -
883 }
never executed: }
0
884 while (*ecode == OP_ALT);
never evaluated: *ecode == OP_ALT
0
885 -
886 if (*ecode == OP_KET) return 0;
never executed: return 0;
never evaluated: *ecode == OP_KET
0
887 -
888 -
889 -
890 if (condition) return 1;
never executed: return 1;
never evaluated: condition
0
891 -
892 -
893 -
894 -
895 do ecode += (ecode[1]); while (*ecode == OP_ALT);
never executed: ecode += (ecode[1]);
never evaluated: *ecode == OP_ALT
0
896 ecode += 1 + 1; -
897 offset_top = md->end_offset_top; -
898 continue;
never executed: continue;
0
899 -
900 -
901 -
902 -
903 -
904 case OP_ASSERT_NOT: -
905 case OP_ASSERTBACK_NOT: -
906 data = md->mark; -
907 if (md->match_function_type == 1)
never evaluated: md->match_function_type == 1
0
908 { -
909 condition = 1; -
910 md->match_function_type = 0; -
911 }
never executed: }
0
912 else condition = 0;
never executed: condition = 0;
0
913 -
914 do -
915 { -
916 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); -
917 md->mark = data; -
918 if (rrc == 1 || rrc == (-999)) return 0;
never executed: return 0;
never evaluated: rrc == 1
never evaluated: rrc == (-999)
0
919 if (rrc == (-994) || rrc == (-995) || rrc == (-998))
never evaluated: rrc == (-994)
never evaluated: rrc == (-995)
never evaluated: rrc == (-998)
0
920 { -
921 do ecode += (ecode[1]); while (*ecode == OP_ALT);
never executed: ecode += (ecode[1]);
never evaluated: *ecode == OP_ALT
0
922 break;
never executed: break;
0
923 } -
924 -
925 -
926 -
927 -
928 if (rrc != 0 && rrc != (-992)) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
never evaluated: rrc != (-992)
0
929 ecode += (ecode[1]); -
930 }
never executed: }
0
931 while (*ecode == OP_ALT);
never evaluated: *ecode == OP_ALT
0
932 -
933 if (condition) return 1;
never executed: return 1;
never evaluated: condition
0
934 -
935 ecode += 1 + 1; -
936 continue;
never executed: continue;
0
937 -
938 -
939 -
940 -
941 -
942 -
943 case OP_REVERSE: -
944 -
945 if (utf)
never evaluated: utf
0
946 { -
947 i = (ecode[1]); -
948 while (i-- > 0)
never evaluated: i-- > 0
0
949 { -
950 eptr--; -
951 if (eptr < md->start_subject) return 0;
never executed: return 0;
never evaluated: eptr < md->start_subject
0
952 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never executed: eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
0
953 }
never executed: }
0
954 }
never executed: }
0
955 else -
956 -
957 -
958 -
959 -
960 { -
961 eptr -= (ecode[1]); -
962 if (eptr < md->start_subject) return 0;
never executed: return 0;
never evaluated: eptr < md->start_subject
0
963 }
never executed: }
0
964 -
965 -
966 -
967 if (eptr < md->start_used_ptr) md->start_used_ptr = eptr;
never executed: md->start_used_ptr = eptr;
never evaluated: eptr < md->start_used_ptr
0
968 ecode += 1 + 1; -
969 break;
never executed: break;
0
970 -
971 -
972 -
973 -
974 -
975 case OP_CALLOUT: -
976 if (pcre16_callout != ((void *)0))
never evaluated: pcre16_callout != ((void *)0)
0
977 { -
978 pcre16_callout_block cb; -
979 cb.version = 2; -
980 cb.callout_number = ecode[1]; -
981 cb.offset_vector = md->offset_vector; -
982 -
983 -
984 -
985 cb.subject = (const unsigned short *)md->start_subject; -
986 -
987 cb.subject_length = (int)(md->end_subject - md->start_subject); -
988 cb.start_match = (int)(mstart - md->start_subject); -
989 cb.current_position = (int)(eptr - md->start_subject); -
990 cb.pattern_position = (ecode[2]); -
991 cb.next_item_length = (ecode[2 + 1]); -
992 cb.capture_top = offset_top/2; -
993 cb.capture_last = md->capture_last; -
994 cb.callout_data = md->callout_data; -
995 cb.mark = md->nomatch_mark; -
996 if ((rrc = (*pcre16_callout)(&cb)) > 0) return 0;
never executed: return 0;
never evaluated: (rrc = (*pcre16_callout)(&cb)) > 0
0
997 if (rrc < 0) return rrc;
never executed: return rrc;
never evaluated: rrc < 0
0
998 }
never executed: }
0
999 ecode += 2 + 2*1; -
1000 break;
never executed: break;
0
1001 case OP_RECURSE: -
1002 { -
1003 recursion_info *ri; -
1004 int recno; -
1005 -
1006 callpat = md->start_code + (ecode[1]); -
1007 recno = (callpat == md->start_code)? 0 :
evaluated: (callpat == md->start_code)
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:8
8
1008 callpat[1 + 1]; -
1009 -
1010 -
1011 -
1012 -
1013 -
1014 for (ri = md->recursive; ri != ((void *)0); ri = ri->prevrec)
evaluated: ri != ((void *)0)
TRUEFALSE
yes
Evaluation Count:20
yes
Evaluation Count:12
12-20
1015 if (recno == ri->group_num && eptr == ri->subject_position)
evaluated: recno == ri->group_num
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:12
evaluated: eptr == ri->subject_position
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:4
4-12
1016 return (-26);
executed: return (-26);
Execution Count:4
4
1017 -
1018 -
1019 -
1020 new_recursive.group_num = recno; -
1021 new_recursive.subject_position = eptr; -
1022 new_recursive.prevrec = md->recursive; -
1023 md->recursive = &new_recursive; -
1024 -
1025 -
1026 -
1027 ecode += 1 + 1; -
1028 -
1029 -
1030 -
1031 new_recursive.saved_max = md->offset_end; -
1032 if (new_recursive.saved_max <= 30)
partially evaluated: new_recursive.saved_max <= 30
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1033 new_recursive.offset_save = stacksave;
executed: new_recursive.offset_save = stacksave;
Execution Count:12
12
1034 else -
1035 { -
1036 new_recursive.offset_save = -
1037 (int *)(pcre16_malloc)(new_recursive.saved_max * sizeof(int)); -
1038 if (new_recursive.offset_save == ((void *)0)) return (-6);
never executed: return (-6);
never evaluated: new_recursive.offset_save == ((void *)0)
0
1039 }
never executed: }
0
1040 memcpy(new_recursive.offset_save, md->offset_vector, -
1041 new_recursive.saved_max * sizeof(int)); -
1042 -
1043 -
1044 -
1045 -
1046 -
1047 ; -
1048 condition = (*callpat >= OP_SBRA); -
1049 do -
1050 { -
1051 if (condition) md->match_function_type = 2;
never executed: md->match_function_type = 2;
partially evaluated: condition
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1052 rrc = match(eptr,callpat + _pcre16_OP_lengths[*callpat],mstart,offset_top,md,eptrb,rdepth+1); -
1053 -
1054 memcpy(md->offset_vector, new_recursive.offset_save, -
1055 new_recursive.saved_max * sizeof(int)); -
1056 md->recursive = new_recursive.prevrec; -
1057 if (rrc == 1 || rrc == (-999))
partially evaluated: rrc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
partially evaluated: rrc == (-999)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1058 { -
1059 ; -
1060 if (new_recursive.offset_save != stacksave)
never evaluated: new_recursive.offset_save != stacksave
0
1061 (pcre16_free)(new_recursive.offset_save);
never executed: (pcre16_free)(new_recursive.offset_save);
0
1062 -
1063 -
1064 -
1065 -
1066 -
1067 eptr = md->end_match_ptr; -
1068 mstart = md->start_match_ptr; -
1069 goto RECURSION_MATCHED;
never executed: goto RECURSION_MATCHED;
0
1070 } -
1071 -
1072 -
1073 -
1074 -
1075 else if (rrc != 0 && rrc != (-992))
partially evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
partially evaluated: rrc != (-992)
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1076 { -
1077 ; -
1078 if (new_recursive.offset_save != stacksave)
partially evaluated: new_recursive.offset_save != stacksave
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1079 (pcre16_free)(new_recursive.offset_save);
never executed: (pcre16_free)(new_recursive.offset_save);
0
1080 return rrc;
executed: return rrc;
Execution Count:12
12
1081 } -
1082 -
1083 md->recursive = &new_recursive; -
1084 callpat += (callpat[1]); -
1085 }
never executed: }
0
1086 while (*callpat == OP_ALT);
never evaluated: *callpat == OP_ALT
0
1087 -
1088 ; -
1089 md->recursive = new_recursive.prevrec; -
1090 if (new_recursive.offset_save != stacksave)
never evaluated: new_recursive.offset_save != stacksave
0
1091 (pcre16_free)(new_recursive.offset_save);
never executed: (pcre16_free)(new_recursive.offset_save);
0
1092 return 0;
never executed: return 0;
0
1093 } -
1094 -
1095 RECURSION_MATCHED: -
1096 break;
never executed: break;
0
1097 -
1098 -
1099 -
1100 -
1101 case OP_ALT: -
1102 do ecode += (ecode[1]); while (*ecode == OP_ALT);
executed: ecode += (ecode[1]);
Execution Count:15
partially evaluated: *ecode == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1103 break;
executed: break;
Execution Count:15
15
1104 -
1105 -
1106 -
1107 -
1108 -
1109 -
1110 -
1111 case OP_BRAZERO: -
1112 next = ecode + 1; -
1113 rrc = match(eptr,next,mstart,offset_top,md,eptrb,rdepth+1); -
1114 if (rrc != 0) return rrc;
executed: return rrc;
Execution Count:2
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:1
1-2
1115 do next += (next[1]); while (*next == OP_ALT);
executed: next += (next[1]);
Execution Count:1
partially evaluated: *next == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1116 ecode = next + 1 + 1; -
1117 break;
executed: break;
Execution Count:1
1
1118 -
1119 case OP_BRAMINZERO: -
1120 next = ecode + 1; -
1121 do next += (next[1]); while (*next == OP_ALT);
executed: next += (next[1]);
Execution Count:14
partially evaluated: *next == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
0-14
1122 rrc = match(eptr,next + 1+1,mstart,offset_top,md,eptrb,rdepth+1); -
1123 if (rrc != 0) return rrc;
executed: return rrc;
Execution Count:8
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:6
6-8
1124 ecode++; -
1125 break;
executed: break;
Execution Count:6
6
1126 -
1127 case OP_SKIPZERO: -
1128 next = ecode+1; -
1129 do next += (next[1]); while (*next == OP_ALT);
never executed: next += (next[1]);
never evaluated: *next == OP_ALT
0
1130 ecode = next + 1 + 1; -
1131 break;
never executed: break;
0
1132 -
1133 -
1134 -
1135 -
1136 case OP_BRAPOSZERO: -
1137 op = *(++ecode); -
1138 cur_is_word = 1; -
1139 if (op == OP_CBRAPOS || op == OP_SCBRAPOS) goto POSSESSIVE_CAPTURE;
never executed: goto POSSESSIVE_CAPTURE;
never evaluated: op == OP_CBRAPOS
never evaluated: op == OP_SCBRAPOS
0
1140 goto POSSESSIVE_NON_CAPTURE;
never executed: goto POSSESSIVE_NON_CAPTURE;
0
1141 -
1142 -
1143 -
1144 case OP_KET: -
1145 case OP_KETRMIN: -
1146 case OP_KETRMAX: -
1147 case OP_KETRPOS: -
1148 prev = ecode - (ecode[1]); -
1149 -
1150 -
1151 -
1152 -
1153 -
1154 if (*prev >= OP_SBRA || *prev == OP_ONCE)
partially evaluated: *prev >= OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:784
partially evaluated: *prev == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:784
0-784
1155 { -
1156 saved_eptr = eptrb->epb_saved_eptr; -
1157 eptrb = eptrb->epb_prev; -
1158 }
never executed: }
0
1159 else saved_eptr = ((void *)0);
executed: saved_eptr = ((void *)0);
Execution Count:784
784
1160 -
1161 -
1162 -
1163 -
1164 -
1165 -
1166 if ((*prev >= OP_ASSERT && *prev <= OP_ASSERTBACK_NOT) ||
partially evaluated: *prev >= OP_ASSERT
TRUEFALSE
yes
Evaluation Count:784
no
Evaluation Count:0
partially evaluated: *prev <= OP_ASSERTBACK_NOT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:784
0-784
1167 *prev == OP_ONCE_NC)
partially evaluated: *prev == OP_ONCE_NC
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:784
0-784
1168 { -
1169 md->end_match_ptr = eptr; -
1170 md->end_offset_top = offset_top; -
1171 md->start_match_ptr = mstart; -
1172 return 1;
never executed: return 1;
0
1173 } -
1174 if (*prev == OP_CBRA || *prev == OP_SCBRA ||
evaluated: *prev == OP_CBRA
TRUEFALSE
yes
Evaluation Count:174
yes
Evaluation Count:610
partially evaluated: *prev == OP_SCBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:610
0-610
1175 *prev == OP_CBRAPOS || *prev == OP_SCBRAPOS)
partially evaluated: *prev == OP_CBRAPOS
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:610
partially evaluated: *prev == OP_SCBRAPOS
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:610
0-610
1176 { -
1177 number = prev[1+1]; -
1178 offset = number << 1; -
1179 if (md->recursive != ((void *)0) && md->recursive->group_num == number)
partially evaluated: md->recursive != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:174
never evaluated: md->recursive->group_num == number
0-174
1180 { -
1181 md->end_match_ptr = eptr; -
1182 md->start_match_ptr = mstart; -
1183 return 1;
never executed: return 1;
0
1184 } -
1185 -
1186 -
1187 -
1188 md->capture_last = number; -
1189 if (offset >= md->offset_max) md->offset_overflow = 1; else
never executed: md->offset_overflow = 1;
partially evaluated: offset >= md->offset_max
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:174
0-174
1190 { -
1191 if (offset > offset_top)
evaluated: offset > offset_top
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:169
5-169
1192 { -
1193 register int *iptr = md->offset_vector + offset_top; -
1194 register int *iend = md->offset_vector + offset; -
1195 while (iptr < iend) *iptr++ = -1;
executed: *iptr++ = -1;
Execution Count:106
evaluated: iptr < iend
TRUEFALSE
yes
Evaluation Count:106
yes
Evaluation Count:5
5-106
1196 }
executed: }
Execution Count:5
5
1197 -
1198 -
1199 -
1200 md->offset_vector[offset] = -
1201 md->offset_vector[md->offset_end - number]; -
1202 md->offset_vector[offset+1] = (int)(eptr - md->start_subject); -
1203 if (offset_top <= offset) offset_top = offset + 2;
evaluated: offset_top <= offset
TRUEFALSE
yes
Evaluation Count:122
yes
Evaluation Count:52
executed: offset_top = offset + 2;
Execution Count:122
52-122
1204 }
executed: }
Execution Count:174
174
1205 } -
1206 if (*ecode == OP_KET || eptr == saved_eptr)
evaluated: *ecode == OP_KET
TRUEFALSE
yes
Evaluation Count:765
yes
Evaluation Count:19
partially evaluated: eptr == saved_eptr
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:19
0-765
1207 { -
1208 if (*prev == OP_ONCE)
partially evaluated: *prev == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:765
0-765
1209 { -
1210 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
1211 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
1212 md->once_target = prev; -
1213 return (-996);
never executed: return (-996);
0
1214 } -
1215 ecode += 1 + 1; -
1216 break;
executed: break;
Execution Count:765
765
1217 } -
1218 -
1219 -
1220 -
1221 -
1222 -
1223 if (*ecode == OP_KETRPOS)
partially evaluated: *ecode == OP_KETRPOS
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:19
0-19
1224 { -
1225 md->end_match_ptr = eptr; -
1226 md->end_offset_top = offset_top; -
1227 return (-997);
never executed: return (-997);
0
1228 } -
1229 -
1230 -
1231 -
1232 -
1233 -
1234 -
1235 -
1236 if (*ecode == OP_KETRMIN)
evaluated: *ecode == OP_KETRMIN
TRUEFALSE
yes
Evaluation Count:18
yes
Evaluation Count:1
1-18
1237 { -
1238 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
1239 if (rrc != 0) return rrc;
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:12
executed: return rrc;
Execution Count:6
6-12
1240 if (*prev == OP_ONCE)
partially evaluated: *prev == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1241 { -
1242 rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); -
1243 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
1244 md->once_target = prev; -
1245 return (-996);
never executed: return (-996);
0
1246 } -
1247 if (*prev >= OP_SBRA)
partially evaluated: *prev >= OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1248 { -
1249 md->match_function_type = 2; -
1250 rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); -
1251 return rrc;
never executed: return rrc;
0
1252 } -
1253 ecode = prev; -
1254 goto TAIL_RECURSE;
executed: goto TAIL_RECURSE;
Execution Count:12
12
1255 } -
1256 else -
1257 { -
1258 if (*prev >= OP_SBRA) md->match_function_type = 2;
partially evaluated: *prev >= OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: md->match_function_type = 2;
0-1
1259 rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); -
1260 if (rrc == (-996) && md->once_target == prev) rrc = 0;
never executed: rrc = 0;
partially evaluated: rrc == (-996)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: md->once_target == prev
0-1
1261 if (rrc != 0) return rrc;
partially evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
executed: return rrc;
Execution Count:1
0-1
1262 if (*prev == OP_ONCE)
never evaluated: *prev == OP_ONCE
0
1263 { -
1264 rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); -
1265 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
1266 md->once_target = prev; -
1267 return (-996);
never executed: return (-996);
0
1268 } -
1269 ecode += 1 + 1; -
1270 goto TAIL_RECURSE;
never executed: goto TAIL_RECURSE;
0
1271 } -
1272 -
1273 -
1274 -
1275 -
1276 case OP_CIRC: -
1277 if (md->notbol && eptr == md->start_subject) return 0;
never executed: return 0;
partially evaluated: md->notbol
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:27
never evaluated: eptr == md->start_subject
0-27
1278 -
1279 -
1280 -
1281 case OP_SOD:
code before this statement executed: case OP_SOD:
Execution Count:27
27
1282 if (eptr != md->start_subject) return 0;
evaluated: eptr != md->start_subject
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:42
executed: return 0;
Execution Count:4
4-42
1283 ecode++; -
1284 break;
executed: break;
Execution Count:42
42
1285 -
1286 -
1287 -
1288 case OP_CIRCM: -
1289 if (md->notbol && eptr == md->start_subject) return 0;
never executed: return 0;
partially evaluated: md->notbol
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
never evaluated: eptr == md->start_subject
0-4
1290 if (eptr != md->start_subject &&
evaluated: eptr != md->start_subject
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
1291 (eptr == md->end_subject || !((md->nltype != 0)? ((eptr) > md->start_subject && _pcre16_was_newline((eptr), md->nltype, md->start_subject, &(md->nllen), utf)) : ((eptr) >= md->start_subject + md->nllen && (eptr)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (eptr)[-md->nllen+1] == md->nl[1]) ) )))
partially evaluated: eptr == md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1292 return 0;
executed: return 0;
Execution Count:1
1
1293 ecode++; -
1294 break;
executed: break;
Execution Count:3
3
1295 -
1296 -
1297 -
1298 case OP_SOM: -
1299 if (eptr != md->start_subject + md->start_offset) return 0;
partially evaluated: eptr != md->start_subject + md->start_offset
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
never executed: return 0;
0-7
1300 ecode++; -
1301 break;
executed: break;
Execution Count:7
7
1302 -
1303 -
1304 -
1305 case OP_SET_SOM: -
1306 mstart = eptr; -
1307 ecode++; -
1308 break;
never executed: break;
0
1309 -
1310 -
1311 -
1312 -
1313 case OP_DOLLM: -
1314 if (eptr < md->end_subject)
partially evaluated: eptr < md->end_subject
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
1315 { if (!((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0; }
executed: return 0;
Execution Count:5
executed: }
Execution Count:1
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1316 else -
1317 { -
1318 if (md->noteol) return 0;
never evaluated: md->noteol
never executed: return 0;
0
1319 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
1320 }
never executed: }
0
1321 ecode++; -
1322 break;
executed: break;
Execution Count:1
1
1323 -
1324 -
1325 -
1326 -
1327 case OP_DOLL: -
1328 if (md->noteol) return 0;
partially evaluated: md->noteol
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
never executed: return 0;
0-5
1329 if (!md->endonly) goto ASSERT_NL_OR_EOS;
partially evaluated: !md->endonly
TRUEFALSE
yes
Evaluation Count:5
no
Evaluation Count:0
executed: goto ASSERT_NL_OR_EOS;
Execution Count:5
0-5
1330 -
1331 -
1332 -
1333 -
1334 -
1335 case OP_EOD:
code before this statement never executed: case OP_EOD:
0
1336 if (eptr < md->end_subject) return 0;
partially evaluated: eptr < md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:11
never executed: return 0;
0-11
1337 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:11
never evaluated: eptr > md->start_used_ptr
0-11
1338 ecode++; -
1339 break;
executed: break;
Execution Count:11
11
1340 -
1341 -
1342 -
1343 case OP_EODN: -
1344 ASSERT_NL_OR_EOS: -
1345 if (eptr < md->end_subject &&
partially evaluated: eptr < md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
1346 (!((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) ) || eptr != md->end_subject - md->nllen))
never evaluated: (md->nltype != 0)
never evaluated: eptr != md->end_subject - md->nllen
0
1347 return 0;
never executed: return 0;
0
1348 -
1349 -
1350 -
1351 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
evaluated: md->partial > 1
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
executed: return (-12);
Execution Count:1
executed: }
Execution Count:1
evaluated: md->partial != 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:3
partially evaluated: eptr > md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-3
1352 ecode++; -
1353 break;
executed: break;
Execution Count:4
4
1354 -
1355 -
1356 -
1357 case OP_NOT_WORD_BOUNDARY: -
1358 case OP_WORD_BOUNDARY: -
1359 { -
1360 -
1361 -
1362 -
1363 -
1364 -
1365 -
1366 -
1367 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:114
no
Evaluation Count:0
0-114
1368 { -
1369 -
1370 -
1371 if (eptr == md->start_subject) prev_is_word = 0; else
executed: prev_is_word = 0;
Execution Count:6
evaluated: eptr == md->start_subject
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:108
6-108
1372 { -
1373 const pcre_uchar * lastptr = eptr - 1; -
1374 if ((*lastptr & 0xfc00) == 0xdc00) lastptr--;
partially evaluated: (*lastptr & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:108
never executed: lastptr--;
0-108
1375 if (lastptr < md->start_used_ptr) md->start_used_ptr = lastptr;
evaluated: lastptr < md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:107
yes
Evaluation Count:1
executed: md->start_used_ptr = lastptr;
Execution Count:107
1-107
1376 c = *lastptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (lastptr[1] & 0x3ff)) + 0x10000; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:108
never executed: }
0-108
1377 -
1378 if (md->use_ucp)
partially evaluated: md->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:108
0-108
1379 { -
1380 if (c == '_') prev_is_word = 1; else
never executed: prev_is_word = 1;
never evaluated: c == '_'
0
1381 { -
1382 int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
1383 prev_is_word = (cat == ucp_L || cat == ucp_N);
never evaluated: cat == ucp_L
never evaluated: cat == ucp_N
0
1384 }
never executed: }
0
1385 } -
1386 else -
1387 -
1388 prev_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0;
executed: prev_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0;
Execution Count:108
partially evaluated: c < 256
TRUEFALSE
yes
Evaluation Count:108
no
Evaluation Count:0
evaluated: (md->ctypes[c] & 0x10) != 0
TRUEFALSE
yes
Evaluation Count:76
yes
Evaluation Count:32
0-108
1389 } -
1390 -
1391 -
1392 -
1393 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:108
6-108
1394 { -
1395 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
partially evaluated: md->partial > 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never executed: return (-12);
executed: }
Execution Count:2
evaluated: md->partial != 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
partially evaluated: eptr > md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-4
1396 cur_is_word = 0; -
1397 }
executed: }
Execution Count:6
6
1398 else -
1399 { -
1400 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:108
never executed: }
0-108
1401 -
1402 if (md->use_ucp)
partially evaluated: md->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:108
0-108
1403 { -
1404 if (c == '_') cur_is_word = 1; else
never evaluated: c == '_'
never executed: cur_is_word = 1;
0
1405 { -
1406 int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
1407 cur_is_word = (cat == ucp_L || cat == ucp_N);
never evaluated: cat == ucp_L
never evaluated: cat == ucp_N
0
1408 }
never executed: }
0
1409 } -
1410 else -
1411 -
1412 cur_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0;
executed: cur_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0;
Execution Count:108
partially evaluated: c < 256
TRUEFALSE
yes
Evaluation Count:108
no
Evaluation Count:0
evaluated: (md->ctypes[c] & 0x10) != 0
TRUEFALSE
yes
Evaluation Count:79
yes
Evaluation Count:29
0-108
1413 } -
1414 } -
1415 else -
1416 -
1417 -
1418 -
1419 -
1420 -
1421 { -
1422 -
1423 -
1424 if (eptr == md->start_subject) prev_is_word = 0; else
never evaluated: eptr == md->start_subject
never executed: prev_is_word = 0;
0
1425 { -
1426 if (eptr <= md->start_used_ptr) md->start_used_ptr = eptr - 1;
never evaluated: eptr <= md->start_used_ptr
never executed: md->start_used_ptr = eptr - 1;
0
1427 -
1428 if (md->use_ucp)
never evaluated: md->use_ucp
0
1429 { -
1430 c = eptr[-1]; -
1431 if (c == '_') prev_is_word = 1; else
never evaluated: c == '_'
never executed: prev_is_word = 1;
0
1432 { -
1433 int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
1434 prev_is_word = (cat == ucp_L || cat == ucp_N);
never evaluated: cat == ucp_L
never evaluated: cat == ucp_N
0
1435 }
never executed: }
0
1436 } -
1437 else -
1438 -
1439 prev_is_word = ((eptr[-1]) <= 255u)
never evaluated: ((eptr[-1]) <= 255u)
0
1440 && ((md->ctypes[eptr[-1]] & 0x10) != 0);
never executed: prev_is_word = ((eptr[-1]) <= 255u) && ((md->ctypes[eptr[-1]] & 0x10) != 0);
never evaluated: ((md->ctypes[eptr[-1]] & 0x10) != 0)
0
1441 } -
1442 -
1443 -
1444 -
1445 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1446 { -
1447 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
1448 cur_is_word = 0; -
1449 }
never executed: }
0
1450 else -
1451 -
1452 if (md->use_ucp)
never evaluated: md->use_ucp
0
1453 { -
1454 c = *eptr; -
1455 if (c == '_') cur_is_word = 1; else
never evaluated: c == '_'
never executed: cur_is_word = 1;
0
1456 { -
1457 int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
1458 cur_is_word = (cat == ucp_L || cat == ucp_N);
never evaluated: cat == ucp_L
never evaluated: cat == ucp_N
0
1459 }
never executed: }
0
1460 } -
1461 else -
1462 -
1463 cur_is_word = ((*eptr) <= 255u)
never evaluated: ((*eptr) <= 255u)
0
1464 && ((md->ctypes[*eptr] & 0x10) != 0);
never executed: cur_is_word = ((*eptr) <= 255u) && ((md->ctypes[*eptr] & 0x10) != 0);
never evaluated: ((md->ctypes[*eptr] & 0x10) != 0)
0
1465 } -
1466 -
1467 -
1468 -
1469 if ((*ecode++ == OP_WORD_BOUNDARY)?
partially evaluated: (*ecode++ == OP_WORD_BOUNDARY)
TRUEFALSE
yes
Evaluation Count:114
no
Evaluation Count:0
0-114
1470 cur_is_word == prev_is_word : cur_is_word != prev_is_word) -
1471 return 0;
executed: return 0;
Execution Count:51
51
1472 } -
1473 break;
executed: break;
Execution Count:63
63
1474 -
1475 -
1476 -
1477 case OP_ANY: -
1478 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0;
never executed: return 0;
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:11
0-11
1479 -
1480 -
1481 case OP_ALLANY:
code before this statement executed: case OP_ALLANY:
Execution Count:11
11
1482 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:3
3-8
1483 { -
1484 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never evaluated: eptr > md->start_used_ptr
0-8
1485 return 0;
executed: return 0;
Execution Count:8
8
1486 } -
1487 eptr++; -
1488 -
1489 if (utf) if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
never executed: eptr++;
partially evaluated: (eptr < md->end_subject)
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1490 -
1491 ecode++; -
1492 break;
executed: break;
Execution Count:3
3
1493 -
1494 -
1495 -
1496 -
1497 case OP_ANYBYTE: -
1498 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1499 { -
1500 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
1501 return 0;
never executed: return 0;
0
1502 } -
1503 eptr++; -
1504 ecode++; -
1505 break;
never executed: break;
0
1506 -
1507 case OP_NOT_DIGIT: -
1508 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1509 { -
1510 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
1511 return 0;
never executed: return 0;
0
1512 } -
1513 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
1514 if ( -
1515 -
1516 c < 256 &&
never evaluated: c < 256
0
1517 -
1518 (md->ctypes[c] & 0x04) != 0
never evaluated: (md->ctypes[c] & 0x04) != 0
0
1519 ) -
1520 return 0;
never executed: return 0;
0
1521 ecode++; -
1522 break;
never executed: break;
0
1523 -
1524 case OP_DIGIT: -
1525 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
1526 { -
1527 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never executed: }
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
1528 return 0;
never executed: return 0;
0
1529 } -
1530 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
1531 if ( -
1532 -
1533 c > 255 ||
partially evaluated: c > 255
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
1534 -
1535 (md->ctypes[c] & 0x04) == 0
partially evaluated: (md->ctypes[c] & 0x04) == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
1536 ) -
1537 return 0;
never executed: return 0;
0
1538 ecode++; -
1539 break;
executed: break;
Execution Count:4
4
1540 -
1541 case OP_NOT_WHITESPACE: -
1542 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1543 { -
1544 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never executed: return (-12);
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: }
0
1545 return 0;
never executed: return 0;
0
1546 } -
1547 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1548 if ( -
1549 -
1550 c < 256 &&
never evaluated: c < 256
0
1551 -
1552 (md->ctypes[c] & 0x01) != 0
never evaluated: (md->ctypes[c] & 0x01) != 0
0
1553 ) -
1554 return 0;
never executed: return 0;
0
1555 ecode++; -
1556 break;
never executed: break;
0
1557 -
1558 case OP_WHITESPACE: -
1559 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1560 { -
1561 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1562 return 0;
never executed: return 0;
0
1563 } -
1564 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1565 if ( -
1566 -
1567 c > 255 ||
never evaluated: c > 255
0
1568 -
1569 (md->ctypes[c] & 0x01) == 0
never evaluated: (md->ctypes[c] & 0x01) == 0
0
1570 ) -
1571 return 0;
never executed: return 0;
0
1572 ecode++; -
1573 break;
never executed: break;
0
1574 -
1575 case OP_NOT_WORDCHAR: -
1576 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1577 { -
1578 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1579 return 0;
never executed: return 0;
0
1580 } -
1581 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1582 if ( -
1583 -
1584 c < 256 &&
never evaluated: c < 256
0
1585 -
1586 (md->ctypes[c] & 0x10) != 0
never evaluated: (md->ctypes[c] & 0x10) != 0
0
1587 ) -
1588 return 0;
never executed: return 0;
0
1589 ecode++; -
1590 break;
never executed: break;
0
1591 -
1592 case OP_WORDCHAR: -
1593 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:54
0-54
1594 { -
1595 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1596 return 0;
never executed: return 0;
0
1597 } -
1598 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:54
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:54
never executed: }
0-54
1599 if ( -
1600 -
1601 c > 255 ||
partially evaluated: c > 255
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:54
0-54
1602 -
1603 (md->ctypes[c] & 0x10) == 0
partially evaluated: (md->ctypes[c] & 0x10) == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:54
0-54
1604 ) -
1605 return 0;
never executed: return 0;
0
1606 ecode++; -
1607 break;
executed: break;
Execution Count:54
54
1608 -
1609 case OP_ANYNL: -
1610 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1611 { -
1612 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1613 return 0;
never executed: return 0;
0
1614 } -
1615 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1616 switch(c) -
1617 { -
1618 default: return 0;
never executed: return 0;
0
1619 -
1620 case 0x000d: -
1621 if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
never evaluated: eptr < md->end_subject
never evaluated: *eptr == 0x0a
never executed: eptr++;
0
1622 break;
never executed: break;
0
1623 -
1624 case 0x000a: -
1625 break;
never executed: break;
0
1626 -
1627 case 0x000b: -
1628 case 0x000c: -
1629 case 0x0085: -
1630 case 0x2028: -
1631 case 0x2029: -
1632 if (md->bsr_anycrlf) return 0;
never evaluated: md->bsr_anycrlf
never executed: return 0;
0
1633 break;
never executed: break;
0
1634 } -
1635 ecode++; -
1636 break;
never executed: break;
0
1637 -
1638 case OP_NOT_HSPACE: -
1639 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1640 { -
1641 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1642 return 0;
never executed: return 0;
0
1643 } -
1644 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1645 switch(c) -
1646 { -
1647 default: break;
never executed: break;
0
1648 case 0x09: -
1649 case 0x20: -
1650 case 0xa0: -
1651 case 0x1680: -
1652 case 0x180e: -
1653 case 0x2000: -
1654 case 0x2001: -
1655 case 0x2002: -
1656 case 0x2003: -
1657 case 0x2004: -
1658 case 0x2005: -
1659 case 0x2006: -
1660 case 0x2007: -
1661 case 0x2008: -
1662 case 0x2009: -
1663 case 0x200A: -
1664 case 0x202f: -
1665 case 0x205f: -
1666 case 0x3000: -
1667 return 0;
never executed: return 0;
0
1668 } -
1669 ecode++; -
1670 break;
never executed: break;
0
1671 -
1672 case OP_HSPACE: -
1673 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1674 { -
1675 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1676 return 0;
never executed: return 0;
0
1677 } -
1678 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1679 switch(c) -
1680 { -
1681 default: return 0;
never executed: return 0;
0
1682 case 0x09: -
1683 case 0x20: -
1684 case 0xa0: -
1685 case 0x1680: -
1686 case 0x180e: -
1687 case 0x2000: -
1688 case 0x2001: -
1689 case 0x2002: -
1690 case 0x2003: -
1691 case 0x2004: -
1692 case 0x2005: -
1693 case 0x2006: -
1694 case 0x2007: -
1695 case 0x2008: -
1696 case 0x2009: -
1697 case 0x200A: -
1698 case 0x202f: -
1699 case 0x205f: -
1700 case 0x3000: -
1701 break;
never executed: break;
0
1702 } -
1703 ecode++; -
1704 break;
never executed: break;
0
1705 -
1706 case OP_NOT_VSPACE: -
1707 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1708 { -
1709 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1710 return 0;
never executed: return 0;
0
1711 } -
1712 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1713 switch(c) -
1714 { -
1715 default: break;
never executed: break;
0
1716 case 0x0a: -
1717 case 0x0b: -
1718 case 0x0c: -
1719 case 0x0d: -
1720 case 0x85: -
1721 case 0x2028: -
1722 case 0x2029: -
1723 return 0;
never executed: return 0;
0
1724 } -
1725 ecode++; -
1726 break;
never executed: break;
0
1727 -
1728 case OP_VSPACE: -
1729 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1730 { -
1731 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1732 return 0;
never executed: return 0;
0
1733 } -
1734 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1735 switch(c) -
1736 { -
1737 default: return 0;
never executed: return 0;
0
1738 case 0x0a: -
1739 case 0x0b: -
1740 case 0x0c: -
1741 case 0x0d: -
1742 case 0x85: -
1743 case 0x2028: -
1744 case 0x2029: -
1745 break;
never executed: break;
0
1746 } -
1747 ecode++; -
1748 break;
never executed: break;
0
1749 -
1750 -
1751 -
1752 -
1753 -
1754 case OP_PROP: -
1755 case OP_NOTPROP: -
1756 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
1757 { -
1758 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1759 return 0;
never executed: return 0;
0
1760 } -
1761 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never executed: }
0-2
1762 { -
1763 const ucd_record *prop = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128]); -
1764 -
1765 switch(ecode[1]) -
1766 { -
1767 case 0: -
1768 if (op == OP_NOTPROP) return 0;
never evaluated: op == OP_NOTPROP
never executed: return 0;
0
1769 break;
never executed: break;
0
1770 -
1771 case 1: -
1772 if ((prop->chartype == ucp_Lu ||
never evaluated: prop->chartype == ucp_Lu
0
1773 prop->chartype == ucp_Ll ||
never evaluated: prop->chartype == ucp_Ll
0
1774 prop->chartype == ucp_Lt) == (op == OP_NOTPROP))
never evaluated: (prop->chartype == ucp_Lu || prop->chartype == ucp_Ll || prop->chartype == ucp_Lt) == (op == OP_NOTPROP)
never evaluated: prop->chartype == ucp_Lt
0
1775 return 0;
never executed: return 0;
0
1776 break;
never executed: break;
0
1777 -
1778 case 2: -
1779 if ((ecode[2] != _pcre16_ucp_gentype[prop->chartype]) == (op == OP_PROP))
never evaluated: (ecode[2] != _pcre16_ucp_gentype[prop->chartype]) == (op == OP_PROP)
0
1780 return 0;
never executed: return 0;
0
1781 break;
never executed: break;
0
1782 -
1783 case 3: -
1784 if ((ecode[2] != prop->chartype) == (op == OP_PROP))
partially evaluated: (ecode[2] != prop->chartype) == (op == OP_PROP)
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
1785 return 0;
executed: return 0;
Execution Count:2
2
1786 break;
never executed: break;
0
1787 -
1788 case 4: -
1789 if ((ecode[2] != prop->script) == (op == OP_PROP))
never evaluated: (ecode[2] != prop->script) == (op == OP_PROP)
0
1790 return 0;
never executed: return 0;
0
1791 break;
never executed: break;
0
1792 -
1793 -
1794 -
1795 case 5: -
1796 if ((_pcre16_ucp_gentype[prop->chartype] == ucp_L ||
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_L
0
1797 _pcre16_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP))
never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_L || _pcre16_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP)
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_N
0
1798 return 0;
never executed: return 0;
0
1799 break;
never executed: break;
0
1800 -
1801 case 6: -
1802 if ((_pcre16_ucp_gentype[prop->chartype] == ucp_Z ||
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_Z
0
1803 c == '\011' || c == '\012' || c == '\014' || c == '\015')
never evaluated: c == '\011'
never evaluated: c == '\012'
never evaluated: c == '\014'
never evaluated: c == '\015'
0
1804 == (op == OP_NOTPROP))
never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == (op == OP_NOTPROP)
0
1805 return 0;
never executed: return 0;
0
1806 break;
never executed: break;
0
1807 -
1808 case 7: -
1809 if ((_pcre16_ucp_gentype[prop->chartype] == ucp_Z ||
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_Z
0
1810 c == '\011' || c == '\012' || c == '\013' ||
never evaluated: c == '\011'
never evaluated: c == '\012'
never evaluated: c == '\013'
0
1811 c == '\014' || c == '\015')
never evaluated: c == '\014'
never evaluated: c == '\015'
0
1812 == (op == OP_NOTPROP))
never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == (op == OP_NOTPROP)
0
1813 return 0;
never executed: return 0;
0
1814 break;
never executed: break;
0
1815 -
1816 case 8: -
1817 if ((_pcre16_ucp_gentype[prop->chartype] == ucp_L ||
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_L
0
1818 _pcre16_ucp_gentype[prop->chartype] == ucp_N ||
never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_N
0
1819 c == '\137') == (op == OP_NOTPROP))
never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_L || _pcre16_ucp_gentype[prop->chartype] == ucp_N || c == '\137') == (op == OP_NOTPROP)
never evaluated: c == '\137'
0
1820 return 0;
never executed: return 0;
0
1821 break;
never executed: break;
0
1822 -
1823 -
1824 -
1825 default: -
1826 return (-14);
never executed: return (-14);
0
1827 } -
1828 -
1829 ecode += 3; -
1830 } -
1831 break;
never executed: break;
0
1832 -
1833 -
1834 -
1835 -
1836 case OP_EXTUNI: -
1837 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
1838 { -
1839 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1840 return 0;
never executed: return 0;
0
1841 } -
1842 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
1843 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M
never executed: return 0;
0
1844 while (eptr < md->end_subject)
never evaluated: eptr < md->end_subject
0
1845 { -
1846 int len = 1; -
1847 if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; }
never evaluated: (c & 0xfc00) == 0xd800
never evaluated: !utf
never executed: c = *eptr;
never executed: }
never executed: }
0
1848 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M
never executed: break;
0
1849 eptr += len; -
1850 }
never executed: }
0
1851 ecode++; -
1852 break;
never executed: break;
0
1853 case OP_REF: -
1854 case OP_REFI: -
1855 caseless = op == OP_REFI; -
1856 offset = ecode[1] << 1; -
1857 ecode += 1 + 1; -
1858 if (offset >= offset_top || md->offset_vector[offset] < 0)
never evaluated: offset >= offset_top
never evaluated: md->offset_vector[offset] < 0
0
1859 length = (md->jscript_compat)? 0 : -1;
never evaluated: (md->jscript_compat)
never executed: length = (md->jscript_compat)? 0 : -1;
0
1860 else -
1861 length = md->offset_vector[offset+1] - md->offset_vector[offset];
never executed: length = md->offset_vector[offset+1] - md->offset_vector[offset];
0
1862 -
1863 -
1864 -
1865 switch (*ecode) -
1866 { -
1867 case OP_CRSTAR: -
1868 case OP_CRMINSTAR: -
1869 case OP_CRPLUS: -
1870 case OP_CRMINPLUS: -
1871 case OP_CRQUERY: -
1872 case OP_CRMINQUERY: -
1873 c = *ecode++ - OP_CRSTAR; -
1874 minimize = (c & 1) != 0; -
1875 min = rep_min[c]; -
1876 max = rep_max[c]; -
1877 if (max == 0) max = 2147483647;
never evaluated: max == 0
never executed: max = 2147483647;
0
1878 break;
never executed: break;
0
1879 -
1880 case OP_CRRANGE: -
1881 case OP_CRMINRANGE: -
1882 minimize = (*ecode == OP_CRMINRANGE); -
1883 min = ecode[1]; -
1884 max = ecode[1 + 1]; -
1885 if (max == 0) max = 2147483647;
never evaluated: max == 0
never executed: max = 2147483647;
0
1886 ecode += 1 + 2 * 1; -
1887 break;
never executed: break;
0
1888 -
1889 default: -
1890 if ((length = match_ref(offset, eptr, length, md, caseless)) < 0)
never evaluated: (length = match_ref(offset, eptr, length, md, caseless)) < 0
0
1891 { -
1892 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1893 return 0;
never executed: return 0;
0
1894 } -
1895 eptr += length; -
1896 continue;
never executed: continue;
0
1897 } -
1898 -
1899 -
1900 -
1901 -
1902 -
1903 -
1904 -
1905 if (length == 0) continue;
never evaluated: length == 0
never executed: continue;
0
1906 if (length < 0 && min == 0) continue;
never evaluated: length < 0
never evaluated: min == 0
never executed: continue;
0
1907 -
1908 -
1909 -
1910 -
1911 -
1912 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
1913 { -
1914 int slength; -
1915 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0)
never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0
0
1916 { -
1917 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1918 return 0;
never executed: return 0;
0
1919 } -
1920 eptr += slength; -
1921 }
never executed: }
0
1922 -
1923 -
1924 -
1925 -
1926 if (min == max) continue;
never evaluated: min == max
never executed: continue;
0
1927 -
1928 -
1929 -
1930 if (minimize)
never evaluated: minimize
0
1931 { -
1932 for (i = min;; i++) -
1933 { -
1934 int slength; -
1935 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
1936 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
1937 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
1938 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0)
never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0
0
1939 { -
1940 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1941 return 0;
never executed: return 0;
0
1942 } -
1943 eptr += slength; -
1944 }
never executed: }
0
1945 -
1946 }
never executed: }
0
1947 -
1948 -
1949 -
1950 else -
1951 { -
1952 pp = eptr; -
1953 for (i = min; i < max; i++)
never evaluated: i < max
0
1954 { -
1955 int slength; -
1956 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0)
never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0
0
1957 { -
1958 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
1959 break;
never executed: break;
0
1960 } -
1961 eptr += slength; -
1962 }
never executed: }
0
1963 while (eptr >= pp)
never evaluated: eptr >= pp
0
1964 { -
1965 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
1966 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
1967 eptr -= length; -
1968 }
never executed: }
0
1969 return 0;
never executed: return 0;
0
1970 } -
1971 case OP_NCLASS:
code before this statement never executed: case OP_NCLASS:
0
1972 case OP_CLASS: -
1973 { -
1974 -
1975 -
1976 -
1977 data = ecode + 1; -
1978 ecode += 1 + (32 / sizeof(pcre_uchar)); -
1979 -
1980 switch (*ecode) -
1981 { -
1982 case OP_CRSTAR: -
1983 case OP_CRMINSTAR: -
1984 case OP_CRPLUS: -
1985 case OP_CRMINPLUS: -
1986 case OP_CRQUERY: -
1987 case OP_CRMINQUERY: -
1988 c = *ecode++ - OP_CRSTAR; -
1989 minimize = (c & 1) != 0; -
1990 min = rep_min[c]; -
1991 max = rep_max[c]; -
1992 if (max == 0) max = 2147483647;
never evaluated: max == 0
never executed: max = 2147483647;
0
1993 break;
never executed: break;
0
1994 -
1995 case OP_CRRANGE: -
1996 case OP_CRMINRANGE: -
1997 minimize = (*ecode == OP_CRMINRANGE); -
1998 min = ecode[1]; -
1999 max = ecode[1 + 1]; -
2000 if (max == 0) max = 2147483647;
never evaluated: max == 0
never executed: max = 2147483647;
0
2001 ecode += 1 + 2 * 1; -
2002 break;
never executed: break;
0
2003 -
2004 default: -
2005 min = max = 1; -
2006 break;
executed: break;
Execution Count:125
125
2007 } -
2008 -
2009 -
2010 -
2011 -
2012 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:125
no
Evaluation Count:0
0-125
2013 { -
2014 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:125
yes
Evaluation Count:52
52-125
2015 { -
2016 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:109
16-109
2017 { -
2018 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:16
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-16
2019 return 0;
executed: return 0;
Execution Count:16
16
2020 } -
2021 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:109
never executed: }
0-109
2022 if (c > 255)
partially evaluated: c > 255
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:109
0-109
2023 { -
2024 if (op == OP_CLASS) return 0;
never evaluated: op == OP_CLASS
never executed: return 0;
0
2025 }
never executed: }
0
2026 else -
2027 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0;
evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
TRUEFALSE
yes
Evaluation Count:57
yes
Evaluation Count:52
executed: return 0;
Execution Count:57
52-57
2028 } -
2029 }
executed: }
Execution Count:52
52
2030 else -
2031 -
2032 -
2033 { -
2034 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2035 { -
2036 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2037 { -
2038 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2039 return 0;
never executed: return 0;
0
2040 } -
2041 c = *eptr++; -
2042 -
2043 if (c > 255)
never evaluated: c > 255
0
2044 { -
2045 if (op == OP_CLASS) return 0;
never evaluated: op == OP_CLASS
never executed: return 0;
0
2046 }
never executed: }
0
2047 else -
2048 -
2049 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0;
never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
never executed: return 0;
0
2050 } -
2051 }
never executed: }
0
2052 -
2053 -
2054 -
2055 -
2056 if (min == max) continue;
partially evaluated: min == max
TRUEFALSE
yes
Evaluation Count:52
no
Evaluation Count:0
executed: continue;
Execution Count:52
0-52
2057 -
2058 -
2059 -
2060 -
2061 if (minimize)
never evaluated: minimize
0
2062 { -
2063 -
2064 if (utf)
never evaluated: utf
0
2065 { -
2066 for (i = min;; i++) -
2067 { -
2068 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2069 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2070 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2071 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2072 { -
2073 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2074 return 0;
never executed: return 0;
0
2075 } -
2076 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2077 if (c > 255)
never evaluated: c > 255
0
2078 { -
2079 if (op == OP_CLASS) return 0;
never evaluated: op == OP_CLASS
never executed: return 0;
0
2080 }
never executed: }
0
2081 else -
2082 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0;
never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
never executed: return 0;
0
2083 } -
2084 }
never executed: }
0
2085 else -
2086 -
2087 -
2088 { -
2089 for (i = min;; i++) -
2090 { -
2091 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2092 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2093 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2094 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2095 { -
2096 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2097 return 0;
never executed: return 0;
0
2098 } -
2099 c = *eptr++; -
2100 -
2101 if (c > 255)
never evaluated: c > 255
0
2102 { -
2103 if (op == OP_CLASS) return 0;
never evaluated: op == OP_CLASS
never executed: return 0;
0
2104 }
never executed: }
0
2105 else -
2106 -
2107 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0;
never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
never executed: return 0;
0
2108 } -
2109 }
never executed: }
0
2110 -
2111 } -
2112 -
2113 -
2114 -
2115 else -
2116 { -
2117 pp = eptr; -
2118 -
2119 -
2120 if (utf)
never evaluated: utf
0
2121 { -
2122 for (i = min; i < max; i++)
never evaluated: i < max
0
2123 { -
2124 int len = 1; -
2125 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2126 { -
2127 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2128 break;
never executed: break;
0
2129 } -
2130 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2131 if (c > 255)
never evaluated: c > 255
0
2132 { -
2133 if (op == OP_CLASS) break;
never evaluated: op == OP_CLASS
never executed: break;
0
2134 }
never executed: }
0
2135 else -
2136 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) break;
never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
never executed: break;
0
2137 eptr += len; -
2138 }
never executed: }
0
2139 for (;;) -
2140 { -
2141 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2142 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2143 if (eptr-- == pp) break;
never evaluated: eptr-- == pp
never executed: break;
0
2144 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
never executed: eptr--;
0
2145 }
never executed: }
0
2146 }
never executed: }
0
2147 else -
2148 -
2149 -
2150 { -
2151 for (i = min; i < max; i++)
never evaluated: i < max
0
2152 { -
2153 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2154 { -
2155 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2156 break;
never executed: break;
0
2157 } -
2158 c = *eptr; -
2159 -
2160 if (c > 255)
never evaluated: c > 255
0
2161 { -
2162 if (op == OP_CLASS) break;
never evaluated: op == OP_CLASS
never executed: break;
0
2163 }
never executed: }
0
2164 else -
2165 -
2166 if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) break;
never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0
never executed: break;
0
2167 eptr++; -
2168 }
never executed: }
0
2169 while (eptr >= pp)
never evaluated: eptr >= pp
0
2170 { -
2171 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2172 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2173 eptr--; -
2174 }
never executed: }
0
2175 }
never executed: }
0
2176 -
2177 return 0;
never executed: return 0;
0
2178 } -
2179 -
2180 } -
2181 case OP_XCLASS:
code before this statement never executed: case OP_XCLASS:
0
2182 { -
2183 data = ecode + 1 + 1; -
2184 ecode += (ecode[1]); -
2185 -
2186 switch (*ecode) -
2187 { -
2188 case OP_CRSTAR: -
2189 case OP_CRMINSTAR: -
2190 case OP_CRPLUS: -
2191 case OP_CRMINPLUS: -
2192 case OP_CRQUERY: -
2193 case OP_CRMINQUERY: -
2194 c = *ecode++ - OP_CRSTAR; -
2195 minimize = (c & 1) != 0; -
2196 min = rep_min[c]; -
2197 max = rep_max[c]; -
2198 if (max == 0) max = 2147483647;
partially evaluated: max == 0
TRUEFALSE
yes
Evaluation Count:25
no
Evaluation Count:0
executed: max = 2147483647;
Execution Count:25
0-25
2199 break;
executed: break;
Execution Count:25
25
2200 -
2201 case OP_CRRANGE: -
2202 case OP_CRMINRANGE: -
2203 minimize = (*ecode == OP_CRMINRANGE); -
2204 min = ecode[1]; -
2205 max = ecode[1 + 1]; -
2206 if (max == 0) max = 2147483647;
never evaluated: max == 0
never executed: max = 2147483647;
0
2207 ecode += 1 + 2 * 1; -
2208 break;
never executed: break;
0
2209 -
2210 default: -
2211 min = max = 1; -
2212 break;
never executed: break;
0
2213 } -
2214 -
2215 -
2216 -
2217 for (i = 1; i <= min; i++)
partially evaluated: i <= min
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:25
0-25
2218 { -
2219 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2220 { -
2221 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2222 return 0;
never executed: return 0;
0
2223 } -
2224 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2225 if (!_pcre16_xclass(c, data, utf)) return 0;
never evaluated: !_pcre16_xclass(c, data, utf)
never executed: return 0;
0
2226 }
never executed: }
0
2227 -
2228 -
2229 -
2230 -
2231 if (min == max) continue;
partially evaluated: min == max
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:25
never executed: continue;
0-25
2232 -
2233 -
2234 -
2235 -
2236 if (minimize)
partially evaluated: minimize
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:25
0-25
2237 { -
2238 for (i = min;; i++) -
2239 { -
2240 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2241 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2242 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2243 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2244 { -
2245 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2246 return 0;
never executed: return 0;
0
2247 } -
2248 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2249 if (!_pcre16_xclass(c, data, utf)) return 0;
never evaluated: !_pcre16_xclass(c, data, utf)
never executed: return 0;
0
2250 }
never executed: }
0
2251 -
2252 }
never executed: }
0
2253 -
2254 -
2255 -
2256 else -
2257 { -
2258 pp = eptr; -
2259 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:51
no
Evaluation Count:0
0-51
2260 { -
2261 int len = 1; -
2262 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:41
10-41
2263 { -
2264 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:10
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-10
2265 break;
executed: break;
Execution Count:10
10
2266 } -
2267 -
2268 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:26
executed: }
Execution Count:15
0-41
2269 -
2270 -
2271 -
2272 if (!_pcre16_xclass(c, data, utf)) break;
evaluated: !_pcre16_xclass(c, data, utf)
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:26
executed: break;
Execution Count:15
15-26
2273 eptr += len; -
2274 }
executed: }
Execution Count:26
26
2275 for(;;) -
2276 { -
2277 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2278 if (rrc != 0) return rrc;
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:10
executed: return rrc;
Execution Count:15
10-15
2279 if (eptr-- == pp) break;
partially evaluated: eptr-- == pp
TRUEFALSE
yes
Evaluation Count:10
no
Evaluation Count:0
executed: break;
Execution Count:10
0-10
2280 -
2281 if (utf) if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never evaluated: utf
never evaluated: (*eptr & 0xfc00) == 0xdc00
never executed: eptr--;
0
2282 -
2283 }
never executed: }
0
2284 return 0;
executed: return 0;
Execution Count:10
10
2285 } -
2286 -
2287 -
2288 } -
2289 -
2290 -
2291 -
2292 -
2293 case OP_CHAR:
code before this statement never executed: case OP_CHAR:
0
2294 -
2295 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:2255
no
Evaluation Count:0
0-2255
2296 { -
2297 length = 1; -
2298 ecode++; -
2299 c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2255
never executed: }
0-2255
2300 if (length > md->end_subject - eptr)
evaluated: length > md->end_subject - eptr
TRUEFALSE
yes
Evaluation Count:119
yes
Evaluation Count:2136
119-2136
2301 { -
2302 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
evaluated: md->partial > 1
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:9
evaluated: md->partial != 0
TRUEFALSE
yes
Evaluation Count:29
yes
Evaluation Count:90
partially evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:29
no
Evaluation Count:0
evaluated: eptr > md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:13
executed: return (-12);
Execution Count:7
executed: }
Execution Count:9
0-90
2303 return 0;
executed: return 0;
Execution Count:112
112
2304 } -
2305 while (length-- > 0) if (*ecode++ != *eptr++) return 0;
evaluated: *ecode++ != *eptr++
TRUEFALSE
yes
Evaluation Count:156
yes
Evaluation Count:1980
evaluated: length-- > 0
TRUEFALSE
yes
Evaluation Count:2136
yes
Evaluation Count:1980
executed: return 0;
Execution Count:156
156-2136
2306 }
executed: }
Execution Count:1980
1980
2307 else -
2308 -
2309 -
2310 { -
2311 if (md->end_subject - eptr < 1)
never evaluated: md->end_subject - eptr < 1
0
2312 { -
2313 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2314 return 0;
never executed: return 0;
0
2315 } -
2316 if (ecode[1] != *eptr++) return 0;
never evaluated: ecode[1] != *eptr++
never executed: return 0;
0
2317 ecode += 2; -
2318 }
never executed: }
0
2319 break;
executed: break;
Execution Count:1980
1980
2320 -
2321 -
2322 -
2323 -
2324 case OP_CHARI: -
2325 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:577
7-577
2326 { -
2327 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-7
2328 return 0;
executed: return 0;
Execution Count:7
7
2329 } -
2330 -
2331 -
2332 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:577
no
Evaluation Count:0
0-577
2333 { -
2334 length = 1; -
2335 ecode++; -
2336 c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:577
never executed: }
0-577
2337 -
2338 -
2339 -
2340 -
2341 -
2342 -
2343 if (c < 128)
evaluated: c < 128
TRUEFALSE
yes
Evaluation Count:576
yes
Evaluation Count:1
1-576
2344 { -
2345 if (md->lcc[c] 0-576
2346 != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return 0;
partially evaluated: md->lcc[c] != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:576
partially evaluated: ((*eptr) <= 255u)
TRUEFALSE
yes
Evaluation Count:576
no
Evaluation Count:0
never executed: return 0;
0-576
2347 ecode++; -
2348 eptr++; -
2349 }
executed: }
Execution Count:576
576
2350 -
2351 -
2352 -
2353 -
2354 -
2355 else -
2356 { -
2357 unsigned int dc; -
2358 dc = *eptr++; if ((dc & 0xfc00) == 0xd800) { dc = (((dc & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: (dc & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: }
0-1
2359 ecode += length; -
2360 -
2361 -
2362 -
2363 -
2364 if (c != dc)
partially evaluated: c != dc
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2365 { -
2366 -
2367 if (dc != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case))
partially evaluated: dc != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2368 -
2369 return 0;
never executed: return 0;
0
2370 }
executed: }
Execution Count:1
1
2371 }
executed: }
Execution Count:1
1
2372 } -
2373 else -
2374 -
2375 -
2376 -
2377 { -
2378 if ((((ecode[1]) <= 255u)? ((md->lcc)[ecode[1]]):(ecode[1]))
never evaluated: ((ecode[1]) <= 255u)
0
2379 != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return 0;
never evaluated: (((ecode[1]) <= 255u)? ((md->lcc)[ecode[1]]):(ecode[1])) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))
never evaluated: ((*eptr) <= 255u)
never executed: return 0;
0
2380 eptr++; -
2381 ecode += 2; -
2382 }
never executed: }
0
2383 break;
executed: break;
Execution Count:577
577
2384 -
2385 -
2386 -
2387 case OP_EXACT: -
2388 case OP_EXACTI: -
2389 min = max = ecode[1]; -
2390 ecode += 1 + 1; -
2391 goto REPEATCHAR;
never executed: goto REPEATCHAR;
0
2392 -
2393 case OP_POSUPTO: -
2394 case OP_POSUPTOI: -
2395 possessive = 1; -
2396 -
2397 -
2398 case OP_UPTO:
code before this statement never executed: case OP_UPTO:
0
2399 case OP_UPTOI: -
2400 case OP_MINUPTO: -
2401 case OP_MINUPTOI: -
2402 min = 0; -
2403 max = ecode[1]; -
2404 minimize = *ecode == OP_MINUPTO || *ecode == OP_MINUPTOI;
never evaluated: *ecode == OP_MINUPTO
never evaluated: *ecode == OP_MINUPTOI
0
2405 ecode += 1 + 1; -
2406 goto REPEATCHAR;
never executed: goto REPEATCHAR;
0
2407 -
2408 case OP_POSSTAR: -
2409 case OP_POSSTARI: -
2410 possessive = 1; -
2411 min = 0; -
2412 max = 2147483647; -
2413 ecode++; -
2414 goto REPEATCHAR;
never executed: goto REPEATCHAR;
0
2415 -
2416 case OP_POSPLUS: -
2417 case OP_POSPLUSI: -
2418 possessive = 1; -
2419 min = 1; -
2420 max = 2147483647; -
2421 ecode++; -
2422 goto REPEATCHAR;
never executed: goto REPEATCHAR;
0
2423 -
2424 case OP_POSQUERY: -
2425 case OP_POSQUERYI: -
2426 possessive = 1; -
2427 min = 0; -
2428 max = 1; -
2429 ecode++; -
2430 goto REPEATCHAR;
never executed: goto REPEATCHAR;
0
2431 -
2432 case OP_STAR: -
2433 case OP_STARI: -
2434 case OP_MINSTAR: -
2435 case OP_MINSTARI: -
2436 case OP_PLUS: -
2437 case OP_PLUSI: -
2438 case OP_MINPLUS: -
2439 case OP_MINPLUSI: -
2440 case OP_QUERY: -
2441 case OP_QUERYI: -
2442 case OP_MINQUERY: -
2443 case OP_MINQUERYI: -
2444 c = *ecode++ - ((op < OP_STARI)? OP_STAR : OP_STARI);
partially evaluated: (op < OP_STARI)
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
0-41
2445 minimize = (c & 1) != 0; -
2446 min = rep_min[c]; -
2447 max = rep_max[c]; -
2448 if (max == 0) max = 2147483647;
partially evaluated: max == 0
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
executed: max = 2147483647;
Execution Count:41
0-41
2449 -
2450 -
2451 -
2452 REPEATCHAR:
code before this statement executed: REPEATCHAR:
Execution Count:41
41
2453 -
2454 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
0-41
2455 { -
2456 length = 1; -
2457 charptr = ecode; -
2458 c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:41
never executed: }
0-41
2459 ecode += length; -
2460 -
2461 -
2462 -
2463 -
2464 if (length > 1)
partially evaluated: length > 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:41
0-41
2465 { -
2466 -
2467 unsigned int othercase; -
2468 if (op >= OP_STARI &&
never evaluated: op >= OP_STARI
0
2469 (othercase = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)) != c)
never evaluated: (othercase = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)) != c
0
2470 oclength = _pcre16_ord2utf(othercase, occhars);
never executed: oclength = _pcre16_ord2utf(othercase, occhars);
0
2471 else oclength = 0;
never executed: oclength = 0;
0
2472 -
2473 -
2474 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2475 { -
2476 if (eptr <= md->end_subject - length &&
never evaluated: eptr <= md->end_subject - length
0
2477 memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length;
never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0
never executed: eptr += length;
0
2478 -
2479 else if (oclength > 0 &&
never evaluated: oclength > 0
0
2480 eptr <= md->end_subject - oclength &&
never evaluated: eptr <= md->end_subject - oclength
0
2481 memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength;
never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0
never executed: eptr += oclength;
0
2482 -
2483 else -
2484 { -
2485 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2486 return 0;
never executed: return 0;
0
2487 } -
2488 } -
2489 -
2490 if (min == max) continue;
never evaluated: min == max
never executed: continue;
0
2491 -
2492 if (minimize)
never evaluated: minimize
0
2493 { -
2494 for (i = min;; i++) -
2495 { -
2496 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2497 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2498 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2499 if (eptr <= md->end_subject - length &&
never evaluated: eptr <= md->end_subject - length
0
2500 memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length;
never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0
never executed: eptr += length;
0
2501 -
2502 else if (oclength > 0 &&
never evaluated: oclength > 0
0
2503 eptr <= md->end_subject - oclength &&
never evaluated: eptr <= md->end_subject - oclength
0
2504 memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength;
never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0
never executed: eptr += oclength;
0
2505 -
2506 else -
2507 { -
2508 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2509 return 0;
never executed: return 0;
0
2510 } -
2511 } -
2512 -
2513 }
never executed: }
0
2514 -
2515 else -
2516 { -
2517 pp = eptr; -
2518 for (i = min; i < max; i++)
never evaluated: i < max
0
2519 { -
2520 if (eptr <= md->end_subject - length &&
never evaluated: eptr <= md->end_subject - length
0
2521 memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length;
never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0
never executed: eptr += length;
0
2522 -
2523 else if (oclength > 0 &&
never evaluated: oclength > 0
0
2524 eptr <= md->end_subject - oclength &&
never evaluated: eptr <= md->end_subject - oclength
0
2525 memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength;
never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0
never executed: eptr += oclength;
0
2526 -
2527 else -
2528 { -
2529 if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr >= md->end_subject
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2530 break;
never executed: break;
0
2531 } -
2532 } -
2533 -
2534 if (possessive) continue;
never evaluated: possessive
never executed: continue;
0
2535 -
2536 for(;;) -
2537 { -
2538 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2539 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2540 if (eptr == pp) { return 0; }
never evaluated: eptr == pp
never executed: return 0;
0
2541 -
2542 eptr--; -
2543 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
never executed: eptr--;
0
2544 -
2545 -
2546 -
2547 }
never executed: }
0
2548 }
never executed: }
0
2549 -
2550 } -
2551 -
2552 -
2553 -
2554 -
2555 }
executed: }
Execution Count:41
41
2556 else -
2557 -
2558 -
2559 c = *ecode++;
never executed: c = *ecode++;
0
2560 ; -
2561 -
2562 -
2563 if (op >= OP_STARI)
partially evaluated: op >= OP_STARI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:41
0-41
2564 { -
2565 -
2566 -
2567 -
2568 -
2569 -
2570 -
2571 if (utf && c > 127)
never evaluated: utf
never evaluated: c > 127
0
2572 number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
never executed: number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
2573 -
2574 -
2575 -
2576 -
2577 else -
2578 -
2579 number = (((c) <= 255u)? ((md->fcc)[c]):(c));
never evaluated: ((c) <= 255u)
never executed: number = (((c) <= 255u)? ((md->fcc)[c]):(c));
0
2580 -
2581 -
2582 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2583 { -
2584 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2585 { -
2586 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2587 return 0;
never executed: return 0;
0
2588 } -
2589 if (c != *eptr && number != *eptr) return 0;
never evaluated: c != *eptr
never evaluated: number != *eptr
never executed: return 0;
0
2590 eptr++; -
2591 }
never executed: }
0
2592 if (min == max) continue;
never evaluated: min == max
never executed: continue;
0
2593 if (minimize)
never evaluated: minimize
0
2594 { -
2595 for (i = min;; i++) -
2596 { -
2597 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2598 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2599 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2600 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2601 { -
2602 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2603 return 0;
never executed: return 0;
0
2604 } -
2605 if (c != *eptr && number != *eptr) return 0;
never evaluated: c != *eptr
never evaluated: number != *eptr
never executed: return 0;
0
2606 eptr++; -
2607 }
never executed: }
0
2608 -
2609 }
never executed: }
0
2610 else -
2611 { -
2612 pp = eptr; -
2613 for (i = min; i < max; i++)
never evaluated: i < max
0
2614 { -
2615 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2616 { -
2617 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2618 break;
never executed: break;
0
2619 } -
2620 if (c != *eptr && number != *eptr) break;
never evaluated: c != *eptr
never evaluated: number != *eptr
never executed: break;
0
2621 eptr++; -
2622 }
never executed: }
0
2623 -
2624 if (possessive) continue;
never evaluated: possessive
never executed: continue;
0
2625 -
2626 while (eptr >= pp)
never evaluated: eptr >= pp
0
2627 { -
2628 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2629 eptr--; -
2630 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2631 }
never executed: }
0
2632 return 0;
never executed: return 0;
0
2633 } -
2634 -
2635 } -
2636 -
2637 -
2638 -
2639 else -
2640 { -
2641 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:39
7-39
2642 { -
2643 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:5
2-5
2644 { -
2645 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-2
2646 return 0;
executed: return 0;
Execution Count:2
2
2647 } -
2648 if (c != *eptr++) return 0;
partially evaluated: c != *eptr++
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
never executed: return 0;
0-5
2649 }
executed: }
Execution Count:5
5
2650 -
2651 if (min == max) continue;
partially evaluated: min == max
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:39
never executed: continue;
0-39
2652 -
2653 if (minimize)
partially evaluated: minimize
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:39
0-39
2654 { -
2655 for (i = min;; i++) -
2656 { -
2657 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2658 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2659 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2660 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2661 { -
2662 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2663 return 0;
never executed: return 0;
0
2664 } -
2665 if (c != *eptr++) return 0;
never evaluated: c != *eptr++
never executed: return 0;
0
2666 }
never executed: }
0
2667 -
2668 }
never executed: }
0
2669 else -
2670 { -
2671 pp = eptr; -
2672 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:66
no
Evaluation Count:0
0-66
2673 { -
2674 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:57
9-57
2675 { -
2676 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-9
2677 break;
executed: break;
Execution Count:9
9
2678 } -
2679 if (c != *eptr) break;
evaluated: c != *eptr
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:27
executed: break;
Execution Count:30
27-30
2680 eptr++; -
2681 }
executed: }
Execution Count:27
27
2682 if (possessive) continue;
partially evaluated: possessive
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:39
never executed: continue;
0-39
2683 -
2684 while (eptr >= pp)
evaluated: eptr >= pp
TRUEFALSE
yes
Evaluation Count:39
yes
Evaluation Count:16
16-39
2685 { -
2686 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2687 eptr--; -
2688 if (rrc != 0) return rrc;
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:23
yes
Evaluation Count:16
executed: return rrc;
Execution Count:23
16-23
2689 }
executed: }
Execution Count:16
16
2690 return 0;
executed: return 0;
Execution Count:16
16
2691 } -
2692 } -
2693 -
2694 -
2695 -
2696 -
2697 -
2698 case OP_NOT:
code before this statement never executed: case OP_NOT:
0
2699 case OP_NOTI: -
2700 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2701 { -
2702 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2703 return 0;
never executed: return 0;
0
2704 } -
2705 ecode++; -
2706 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2707 if (op == OP_NOTI)
never evaluated: op == OP_NOTI
0
2708 { -
2709 register unsigned int ch, och; -
2710 ch = *ecode++; -
2711 -
2712 -
2713 -
2714 -
2715 -
2716 -
2717 if (utf && ch > 127)
never evaluated: utf
never evaluated: ch > 127
0
2718 och = (ch + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(ch) / 128] * 128 + (ch) % 128])->other_case);
never executed: och = (ch + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(ch) / 128] * 128 + (ch) % 128])->other_case);
0
2719 -
2720 -
2721 -
2722 -
2723 else -
2724 -
2725 och = (((ch) <= 255u)? ((md->fcc)[ch]):(ch));
never evaluated: ((ch) <= 255u)
never executed: och = (((ch) <= 255u)? ((md->fcc)[ch]):(ch));
0
2726 -
2727 if (ch == c || och == c) return 0;
never evaluated: ch == c
never evaluated: och == c
never executed: return 0;
0
2728 }
never executed: }
0
2729 else -
2730 { -
2731 if (*ecode++ == c) return 0;
never evaluated: *ecode++ == c
never executed: return 0;
0
2732 }
never executed: }
0
2733 break;
never executed: break;
0
2734 case OP_NOTEXACT: -
2735 case OP_NOTEXACTI: -
2736 min = max = ecode[1]; -
2737 ecode += 1 + 1; -
2738 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2739 -
2740 case OP_NOTUPTO: -
2741 case OP_NOTUPTOI: -
2742 case OP_NOTMINUPTO: -
2743 case OP_NOTMINUPTOI: -
2744 min = 0; -
2745 max = ecode[1]; -
2746 minimize = *ecode == OP_NOTMINUPTO || *ecode == OP_NOTMINUPTOI;
never evaluated: *ecode == OP_NOTMINUPTO
never evaluated: *ecode == OP_NOTMINUPTOI
0
2747 ecode += 1 + 1; -
2748 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2749 -
2750 case OP_NOTPOSSTAR: -
2751 case OP_NOTPOSSTARI: -
2752 possessive = 1; -
2753 min = 0; -
2754 max = 2147483647; -
2755 ecode++; -
2756 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2757 -
2758 case OP_NOTPOSPLUS: -
2759 case OP_NOTPOSPLUSI: -
2760 possessive = 1; -
2761 min = 1; -
2762 max = 2147483647; -
2763 ecode++; -
2764 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2765 -
2766 case OP_NOTPOSQUERY: -
2767 case OP_NOTPOSQUERYI: -
2768 possessive = 1; -
2769 min = 0; -
2770 max = 1; -
2771 ecode++; -
2772 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2773 -
2774 case OP_NOTPOSUPTO: -
2775 case OP_NOTPOSUPTOI: -
2776 possessive = 1; -
2777 min = 0; -
2778 max = ecode[1]; -
2779 ecode += 1 + 1; -
2780 goto REPEATNOTCHAR;
never executed: goto REPEATNOTCHAR;
0
2781 -
2782 case OP_NOTSTAR: -
2783 case OP_NOTSTARI: -
2784 case OP_NOTMINSTAR: -
2785 case OP_NOTMINSTARI: -
2786 case OP_NOTPLUS: -
2787 case OP_NOTPLUSI: -
2788 case OP_NOTMINPLUS: -
2789 case OP_NOTMINPLUSI: -
2790 case OP_NOTQUERY: -
2791 case OP_NOTQUERYI: -
2792 case OP_NOTMINQUERY: -
2793 case OP_NOTMINQUERYI: -
2794 c = *ecode++ - ((op >= OP_NOTSTARI)? OP_NOTSTARI: OP_NOTSTAR);
partially evaluated: (op >= OP_NOTSTARI)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2795 minimize = (c & 1) != 0; -
2796 min = rep_min[c]; -
2797 max = rep_max[c]; -
2798 if (max == 0) max = 2147483647;
partially evaluated: max == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
executed: max = 2147483647;
Execution Count:1
0-1
2799 -
2800 -
2801 -
2802 REPEATNOTCHAR:
code before this statement executed: REPEATNOTCHAR:
Execution Count:1
1
2803 c = *ecode++; -
2804 ; -
2805 -
2806 -
2807 if (op >= OP_NOTSTARI)
partially evaluated: op >= OP_NOTSTARI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2808 { -
2809 -
2810 -
2811 -
2812 -
2813 -
2814 -
2815 if (utf && c > 127)
never evaluated: utf
never evaluated: c > 127
0
2816 number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
never executed: number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
2817 -
2818 -
2819 -
2820 -
2821 else -
2822 -
2823 number = (((c) <= 255u)? ((md->fcc)[c]):(c));
never evaluated: ((c) <= 255u)
never executed: number = (((c) <= 255u)? ((md->fcc)[c]):(c));
0
2824 -
2825 -
2826 -
2827 if (utf)
never evaluated: utf
0
2828 { -
2829 register unsigned int d; -
2830 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2831 { -
2832 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2833 { -
2834 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2835 return 0;
never executed: return 0;
0
2836 } -
2837 d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
2838 if (c == d || (unsigned int) number == d) return 0;
never evaluated: c == d
never evaluated: (unsigned int) number == d
never executed: return 0;
0
2839 }
never executed: }
0
2840 }
never executed: }
0
2841 else -
2842 -
2843 -
2844 { -
2845 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2846 { -
2847 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2848 { -
2849 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2850 return 0;
never executed: return 0;
0
2851 } -
2852 if (c == *eptr || number == *eptr) return 0;
never evaluated: c == *eptr
never evaluated: number == *eptr
never executed: return 0;
0
2853 eptr++; -
2854 }
never executed: }
0
2855 }
never executed: }
0
2856 -
2857 if (min == max) continue;
never evaluated: min == max
never executed: continue;
0
2858 -
2859 if (minimize)
never evaluated: minimize
0
2860 { -
2861 -
2862 if (utf)
never evaluated: utf
0
2863 { -
2864 register unsigned int d; -
2865 for (i = min;; i++) -
2866 { -
2867 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2868 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2869 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2870 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2871 { -
2872 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2873 return 0;
never executed: return 0;
0
2874 } -
2875 d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
2876 if (c == d || (unsigned int)number == d) return 0;
never evaluated: c == d
never evaluated: (unsigned int)number == d
never executed: return 0;
0
2877 }
never executed: }
0
2878 }
never executed: }
0
2879 else -
2880 -
2881 -
2882 { -
2883 for (i = min;; i++) -
2884 { -
2885 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2886 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2887 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
2888 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2889 { -
2890 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2891 return 0;
never executed: return 0;
0
2892 } -
2893 if (c == *eptr || number == *eptr) return 0;
never evaluated: c == *eptr
never evaluated: number == *eptr
never executed: return 0;
0
2894 eptr++; -
2895 }
never executed: }
0
2896 }
never executed: }
0
2897 -
2898 } -
2899 -
2900 -
2901 -
2902 else -
2903 { -
2904 pp = eptr; -
2905 -
2906 -
2907 if (utf)
never evaluated: utf
0
2908 { -
2909 register unsigned int d; -
2910 for (i = min; i < max; i++)
never evaluated: i < max
0
2911 { -
2912 int len = 1; -
2913 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2914 { -
2915 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2916 break;
never executed: break;
0
2917 } -
2918 d = *eptr; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
2919 if (c == d || (unsigned int)number == d) break;
never evaluated: c == d
never evaluated: (unsigned int)number == d
never executed: break;
0
2920 eptr += len; -
2921 }
never executed: }
0
2922 if (possessive) continue;
never evaluated: possessive
never executed: continue;
0
2923 for(;;) -
2924 { -
2925 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2926 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2927 if (eptr-- == pp) break;
never evaluated: eptr-- == pp
never executed: break;
0
2928 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
never executed: eptr--;
0
2929 }
never executed: }
0
2930 }
never executed: }
0
2931 else -
2932 -
2933 -
2934 { -
2935 for (i = min; i < max; i++)
never evaluated: i < max
0
2936 { -
2937 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2938 { -
2939 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2940 break;
never executed: break;
0
2941 } -
2942 if (c == *eptr || number == *eptr) break;
never evaluated: c == *eptr
never evaluated: number == *eptr
never executed: break;
0
2943 eptr++; -
2944 }
never executed: }
0
2945 if (possessive) continue;
never evaluated: possessive
never executed: continue;
0
2946 while (eptr >= pp)
never evaluated: eptr >= pp
0
2947 { -
2948 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
2949 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
2950 eptr--; -
2951 }
never executed: }
0
2952 }
never executed: }
0
2953 -
2954 return 0;
never executed: return 0;
0
2955 } -
2956 -
2957 } -
2958 -
2959 -
2960 -
2961 else -
2962 { -
2963 -
2964 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2965 { -
2966 register unsigned int d; -
2967 for (i = 1; i <= min; i++)
partially evaluated: i <= min
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2968 { -
2969 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2970 { -
2971 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2972 return 0;
never executed: return 0;
0
2973 } -
2974 d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
2975 if (c == d) return 0;
never evaluated: c == d
never executed: return 0;
0
2976 }
never executed: }
0
2977 }
executed: }
Execution Count:1
1
2978 else -
2979 -
2980 -
2981 { -
2982 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
2983 { -
2984 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
2985 { -
2986 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
2987 return 0;
never executed: return 0;
0
2988 } -
2989 if (c == *eptr++) return 0;
never evaluated: c == *eptr++
never executed: return 0;
0
2990 }
never executed: }
0
2991 }
never executed: }
0
2992 -
2993 if (min == max) continue;
partially evaluated: min == max
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: continue;
0-1
2994 -
2995 if (minimize)
partially evaluated: minimize
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2996 { -
2997 -
2998 if (utf)
never evaluated: utf
0
2999 { -
3000 register unsigned int d; -
3001 for (i = min;; i++) -
3002 { -
3003 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3004 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
3005 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
3006 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3007 { -
3008 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3009 return 0;
never executed: return 0;
0
3010 } -
3011 d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (d & 0xfc00) == 0xd800
never executed: }
0
3012 if (c == d) return 0;
never evaluated: c == d
never executed: return 0;
0
3013 }
never executed: }
0
3014 }
never executed: }
0
3015 else -
3016 -
3017 -
3018 { -
3019 for (i = min;; i++) -
3020 { -
3021 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3022 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
3023 if (i >= max) return 0;
never evaluated: i >= max
never executed: return 0;
0
3024 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3025 { -
3026 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3027 return 0;
never executed: return 0;
0
3028 } -
3029 if (c == *eptr++) return 0;
never evaluated: c == *eptr++
never executed: return 0;
0
3030 }
never executed: }
0
3031 }
never executed: }
0
3032 -
3033 } -
3034 -
3035 -
3036 -
3037 else -
3038 { -
3039 pp = eptr; -
3040 -
3041 -
3042 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
3043 { -
3044 register unsigned int d; -
3045 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
3046 { -
3047 int len = 1; -
3048 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
3049 { -
3050 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3051 break;
never executed: break;
0
3052 } -
3053 d = *eptr; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
partially evaluated: (d & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never executed: }
0-8
3054 if (c == d) break;
evaluated: c == d
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:7
executed: break;
Execution Count:1
1-7
3055 eptr += len; -
3056 }
executed: }
Execution Count:7
7
3057 if (possessive) continue;
partially evaluated: possessive
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: continue;
0-1
3058 for(;;) -
3059 { -
3060 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3061 if (rrc != 0) return rrc;
partially evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
executed: return rrc;
Execution Count:1
0-1
3062 if (eptr-- == pp) break;
never evaluated: eptr-- == pp
never executed: break;
0
3063 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
never executed: eptr--;
0
3064 }
never executed: }
0
3065 }
never executed: }
0
3066 else -
3067 -
3068 -
3069 { -
3070 for (i = min; i < max; i++)
never evaluated: i < max
0
3071 { -
3072 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3073 { -
3074 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3075 break;
never executed: break;
0
3076 } -
3077 if (c == *eptr) break;
never evaluated: c == *eptr
never executed: break;
0
3078 eptr++; -
3079 }
never executed: }
0
3080 if (possessive) continue;
never evaluated: possessive
never executed: continue;
0
3081 while (eptr >= pp)
never evaluated: eptr >= pp
0
3082 { -
3083 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3084 if (rrc != 0) return rrc;
never evaluated: rrc != 0
never executed: return rrc;
0
3085 eptr--; -
3086 }
never executed: }
0
3087 }
never executed: }
0
3088 -
3089 return 0;
never executed: return 0;
0
3090 } -
3091 } -
3092 -
3093 -
3094 -
3095 -
3096 -
3097 -
3098 case OP_TYPEEXACT:
code before this statement never executed: case OP_TYPEEXACT:
0
3099 min = max = ecode[1]; -
3100 minimize = 1; -
3101 ecode += 1 + 1; -
3102 goto REPEATTYPE;
executed: goto REPEATTYPE;
Execution Count:8
8
3103 -
3104 case OP_TYPEUPTO: -
3105 case OP_TYPEMINUPTO: -
3106 min = 0; -
3107 max = ecode[1]; -
3108 minimize = *ecode == OP_TYPEMINUPTO; -
3109 ecode += 1 + 1; -
3110 goto REPEATTYPE;
executed: goto REPEATTYPE;
Execution Count:4
4
3111 -
3112 case OP_TYPEPOSSTAR: -
3113 possessive = 1; -
3114 min = 0; -
3115 max = 2147483647; -
3116 ecode++; -
3117 goto REPEATTYPE;
never executed: goto REPEATTYPE;
0
3118 -
3119 case OP_TYPEPOSPLUS: -
3120 possessive = 1; -
3121 min = 1; -
3122 max = 2147483647; -
3123 ecode++; -
3124 goto REPEATTYPE;
executed: goto REPEATTYPE;
Execution Count:3
3
3125 -
3126 case OP_TYPEPOSQUERY: -
3127 possessive = 1; -
3128 min = 0; -
3129 max = 1; -
3130 ecode++; -
3131 goto REPEATTYPE;
never executed: goto REPEATTYPE;
0
3132 -
3133 case OP_TYPEPOSUPTO: -
3134 possessive = 1; -
3135 min = 0; -
3136 max = ecode[1]; -
3137 ecode += 1 + 1; -
3138 goto REPEATTYPE;
never executed: goto REPEATTYPE;
0
3139 -
3140 case OP_TYPESTAR: -
3141 case OP_TYPEMINSTAR: -
3142 case OP_TYPEPLUS: -
3143 case OP_TYPEMINPLUS: -
3144 case OP_TYPEQUERY: -
3145 case OP_TYPEMINQUERY: -
3146 c = *ecode++ - OP_TYPESTAR; -
3147 minimize = (c & 1) != 0; -
3148 min = rep_min[c]; -
3149 max = rep_max[c]; -
3150 if (max == 0) max = 2147483647;
partially evaluated: max == 0
TRUEFALSE
yes
Evaluation Count:358
no
Evaluation Count:0
executed: max = 2147483647;
Execution Count:358
0-358
3151 -
3152 -
3153 -
3154 -
3155 -
3156 REPEATTYPE:
code before this statement executed: REPEATTYPE:
Execution Count:358
358
3157 ctype = *ecode++; -
3158 -
3159 -
3160 if (ctype == OP_PROP || ctype == OP_NOTPROP)
evaluated: ctype == OP_PROP
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:371
partially evaluated: ctype == OP_NOTPROP
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:371
0-371
3161 { -
3162 prop_fail_result = ctype == OP_NOTPROP; -
3163 prop_type = *ecode++; -
3164 prop_value = *ecode++; -
3165 }
executed: }
Execution Count:2
2
3166 else prop_type = -1;
executed: prop_type = -1;
Execution Count:371
371
3167 if (min > 0)
evaluated: min > 0
TRUEFALSE
yes
Evaluation Count:238
yes
Evaluation Count:135
135-238
3168 { -
3169 -
3170 if (prop_type >= 0)
evaluated: prop_type >= 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:236
2-236
3171 { -
3172 switch(prop_type) -
3173 { -
3174 case 0: -
3175 if (prop_fail_result) return 0;
never evaluated: prop_fail_result
never executed: return 0;
0
3176 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3177 { -
3178 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3179 { -
3180 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3181 return 0;
never executed: return 0;
0
3182 } -
3183 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3184 }
never executed: }
0
3185 break;
never executed: break;
0
3186 -
3187 case 1: -
3188 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3189 { -
3190 int chartype; -
3191 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3192 { -
3193 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3194 return 0;
never executed: return 0;
0
3195 } -
3196 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3197 chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; -
3198 if ((chartype == ucp_Lu ||
never evaluated: chartype == ucp_Lu
0
3199 chartype == ucp_Ll ||
never evaluated: chartype == ucp_Ll
0
3200 chartype == ucp_Lt) == prop_fail_result)
never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result
never evaluated: chartype == ucp_Lt
0
3201 return 0;
never executed: return 0;
0
3202 }
never executed: }
0
3203 break;
never executed: break;
0
3204 -
3205 case 2: -
3206 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3207 { -
3208 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3209 { -
3210 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3211 return 0;
never executed: return 0;
0
3212 } -
3213 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3214 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result
0
3215 return 0;
never executed: return 0;
0
3216 }
never executed: }
0
3217 break;
never executed: break;
0
3218 -
3219 case 3: -
3220 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
3221 { -
3222 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
3223 { -
3224 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3225 return 0;
never executed: return 0;
0
3226 } -
3227 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: }
0-1
3228 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result)
partially evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
3229 return 0;
never executed: return 0;
0
3230 }
executed: }
Execution Count:1
1
3231 break;
executed: break;
Execution Count:1
1
3232 -
3233 case 4: -
3234 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3235 { -
3236 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3237 { -
3238 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3239 return 0;
never executed: return 0;
0
3240 } -
3241 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3242 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result)
never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result
0
3243 return 0;
never executed: return 0;
0
3244 }
never executed: }
0
3245 break;
never executed: break;
0
3246 -
3247 case 5: -
3248 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3249 { -
3250 int category; -
3251 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3252 { -
3253 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3254 return 0;
never executed: return 0;
0
3255 } -
3256 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3257 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
3258 if ((category == ucp_L || category == ucp_N) == prop_fail_result)
never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result
never evaluated: category == ucp_L
never evaluated: category == ucp_N
0
3259 return 0;
never executed: return 0;
0
3260 }
never executed: }
0
3261 break;
never executed: break;
0
3262 -
3263 case 6: -
3264 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3265 { -
3266 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3267 { -
3268 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3269 return 0;
never executed: return 0;
0
3270 } -
3271 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3272 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
3273 c == '\014' || c == '\015')
never evaluated: c == '\014'
never evaluated: c == '\015'
0
3274 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result
0
3275 return 0;
never executed: return 0;
0
3276 }
never executed: }
0
3277 break;
never executed: break;
0
3278 -
3279 case 7: -
3280 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3281 { -
3282 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3283 { -
3284 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3285 return 0;
never executed: return 0;
0
3286 } -
3287 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3288 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
3289 c == '\013' || c == '\014' || c == '\015')
never evaluated: c == '\013'
never evaluated: c == '\014'
never evaluated: c == '\015'
0
3290 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result
0
3291 return 0;
never executed: return 0;
0
3292 }
never executed: }
0
3293 break;
never executed: break;
0
3294 -
3295 case 8: -
3296 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
3297 { -
3298 int category; -
3299 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
3300 { -
3301 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3302 return 0;
never executed: return 0;
0
3303 } -
3304 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: }
0-1
3305 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
3306 if ((category == ucp_L || category == ucp_N || c == '\137')
partially evaluated: category == ucp_L
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
never evaluated: category == ucp_N
never evaluated: c == '\137'
0-1
3307 == prop_fail_result)
partially evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
3308 return 0;
never executed: return 0;
0
3309 }
executed: }
Execution Count:1
1
3310 break;
executed: break;
Execution Count:1
1
3311 -
3312 -
3313 -
3314 default: -
3315 return (-14);
never executed: return (-14);
0
3316 } -
3317 }
executed: }
Execution Count:2
2
3318 -
3319 -
3320 -
3321 -
3322 else if (ctype == OP_EXTUNI)
partially evaluated: ctype == OP_EXTUNI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:236
0-236
3323 { -
3324 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3325 { -
3326 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3327 { -
3328 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3329 return 0;
never executed: return 0;
0
3330 } -
3331 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3332 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M
never executed: return 0;
0
3333 while (eptr < md->end_subject)
never evaluated: eptr < md->end_subject
0
3334 { -
3335 int len = 1; -
3336 if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; }
never evaluated: (c & 0xfc00) == 0xd800
never evaluated: !utf
never executed: c = *eptr;
never executed: }
never executed: }
0
3337 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M
never executed: break;
0
3338 eptr += len; -
3339 }
never executed: }
0
3340 }
never executed: }
0
3341 }
never executed: }
0
3342 -
3343 else -
3344 -
3345 -
3346 -
3347 -
3348 -
3349 if (utf) switch(ctype)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:236
no
Evaluation Count:0
0-236
3350 { -
3351 case OP_ANY: -
3352 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
2
3353 { -
3354 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
3355 { -
3356 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3357 return 0;
never executed: return 0;
0
3358 } -
3359 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0;
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never executed: return 0;
0-2
3360 eptr++; -
3361 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
partially evaluated: (eptr < md->end_subject)
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never executed: eptr++;
0-2
3362 }
executed: }
Execution Count:2
2
3363 break;
executed: break;
Execution Count:2
2
3364 -
3365 case OP_ALLANY: -
3366 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3367 { -
3368 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3369 { -
3370 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3371 return 0;
never executed: return 0;
0
3372 } -
3373 eptr++; -
3374 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
never evaluated: (eptr < md->end_subject)
never evaluated: ((*eptr) & 0xfc00) == 0xdc00
never executed: eptr++;
0
3375 }
never executed: }
0
3376 break;
never executed: break;
0
3377 -
3378 case OP_ANYBYTE: -
3379 if (eptr > md->end_subject - min) return 0;
never evaluated: eptr > md->end_subject - min
never executed: return 0;
0
3380 eptr += min; -
3381 break;
never executed: break;
0
3382 -
3383 case OP_ANYNL: -
3384 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3385 { -
3386 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3387 { -
3388 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3389 return 0;
never executed: return 0;
0
3390 } -
3391 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3392 switch(c) -
3393 { -
3394 default: return 0;
never executed: return 0;
0
3395 -
3396 case 0x000d: -
3397 if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
never evaluated: eptr < md->end_subject
never evaluated: *eptr == 0x0a
never executed: eptr++;
0
3398 break;
never executed: break;
0
3399 -
3400 case 0x000a: -
3401 break;
never executed: break;
0
3402 -
3403 case 0x000b: -
3404 case 0x000c: -
3405 case 0x0085: -
3406 case 0x2028: -
3407 case 0x2029: -
3408 if (md->bsr_anycrlf) return 0;
never evaluated: md->bsr_anycrlf
never executed: return 0;
0
3409 break;
never executed: break;
0
3410 } -
3411 }
never executed: }
0
3412 break;
never executed: break;
0
3413 -
3414 case OP_NOT_HSPACE: -
3415 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3416 { -
3417 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3418 { -
3419 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3420 return 0;
never executed: return 0;
0
3421 } -
3422 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3423 switch(c) -
3424 { -
3425 default: break;
never executed: break;
0
3426 case 0x09: -
3427 case 0x20: -
3428 case 0xa0: -
3429 case 0x1680: -
3430 case 0x180e: -
3431 case 0x2000: -
3432 case 0x2001: -
3433 case 0x2002: -
3434 case 0x2003: -
3435 case 0x2004: -
3436 case 0x2005: -
3437 case 0x2006: -
3438 case 0x2007: -
3439 case 0x2008: -
3440 case 0x2009: -
3441 case 0x200A: -
3442 case 0x202f: -
3443 case 0x205f: -
3444 case 0x3000: -
3445 return 0;
never executed: return 0;
0
3446 } -
3447 }
never executed: }
0
3448 break;
never executed: break;
0
3449 -
3450 case OP_HSPACE: -
3451 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3452 { -
3453 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3454 { -
3455 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3456 return 0;
never executed: return 0;
0
3457 } -
3458 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3459 switch(c) -
3460 { -
3461 default: return 0;
never executed: return 0;
0
3462 case 0x09: -
3463 case 0x20: -
3464 case 0xa0: -
3465 case 0x1680: -
3466 case 0x180e: -
3467 case 0x2000: -
3468 case 0x2001: -
3469 case 0x2002: -
3470 case 0x2003: -
3471 case 0x2004: -
3472 case 0x2005: -
3473 case 0x2006: -
3474 case 0x2007: -
3475 case 0x2008: -
3476 case 0x2009: -
3477 case 0x200A: -
3478 case 0x202f: -
3479 case 0x205f: -
3480 case 0x3000: -
3481 break;
never executed: break;
0
3482 } -
3483 }
never executed: }
0
3484 break;
never executed: break;
0
3485 -
3486 case OP_NOT_VSPACE: -
3487 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3488 { -
3489 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3490 { -
3491 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3492 return 0;
never executed: return 0;
0
3493 } -
3494 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3495 switch(c) -
3496 { -
3497 default: break;
never executed: break;
0
3498 case 0x0a: -
3499 case 0x0b: -
3500 case 0x0c: -
3501 case 0x0d: -
3502 case 0x85: -
3503 case 0x2028: -
3504 case 0x2029: -
3505 return 0;
never executed: return 0;
0
3506 } -
3507 }
never executed: }
0
3508 break;
never executed: break;
0
3509 -
3510 case OP_VSPACE: -
3511 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3512 { -
3513 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3514 { -
3515 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3516 return 0;
never executed: return 0;
0
3517 } -
3518 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3519 switch(c) -
3520 { -
3521 default: return 0;
never executed: return 0;
0
3522 case 0x0a: -
3523 case 0x0b: -
3524 case 0x0c: -
3525 case 0x0d: -
3526 case 0x85: -
3527 case 0x2028: -
3528 case 0x2029: -
3529 break;
never executed: break;
0
3530 } -
3531 }
never executed: }
0
3532 break;
never executed: break;
0
3533 -
3534 case OP_NOT_DIGIT: -
3535 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3536 { -
3537 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3538 { -
3539 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3540 return 0;
never executed: return 0;
0
3541 } -
3542 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
3543 if (c < 128 && (md->ctypes[c] & 0x04) != 0)
never evaluated: c < 128
never evaluated: (md->ctypes[c] & 0x04) != 0
0
3544 return 0;
never executed: return 0;
0
3545 }
never executed: }
0
3546 break;
never executed: break;
0
3547 -
3548 case OP_DIGIT: -
3549 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:43
yes
Evaluation Count:9
9-43
3550 { -
3551 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:38
5-38
3552 { -
3553 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
evaluated: md->partial > 1
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
evaluated: md->partial != 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:3
partially evaluated: eptr > md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
executed: return (-12);
Execution Count:1
executed: }
Execution Count:1
0-3
3554 return 0;
executed: return 0;
Execution Count:4
4
3555 } -
3556 if (*eptr >= 128 || (md->ctypes[*eptr] & 0x04) == 0)
partially evaluated: *eptr >= 128
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:38
evaluated: (md->ctypes[*eptr] & 0x04) == 0
TRUEFALSE
yes
Evaluation Count:19
yes
Evaluation Count:19
0-38
3557 return 0;
executed: return 0;
Execution Count:19
19
3558 eptr++; -
3559 -
3560 }
executed: }
Execution Count:19
19
3561 break;
executed: break;
Execution Count:9
9
3562 -
3563 case OP_NOT_WHITESPACE: -
3564 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3565 { -
3566 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3567 { -
3568 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3569 return 0;
never executed: return 0;
0
3570 } -
3571 if (*eptr < 128 && (md->ctypes[*eptr] & 0x01) != 0)
never evaluated: *eptr < 128
never evaluated: (md->ctypes[*eptr] & 0x01) != 0
0
3572 return 0;
never executed: return 0;
0
3573 eptr++; -
3574 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
never evaluated: (eptr < md->end_subject)
never evaluated: ((*eptr) & 0xfc00) == 0xdc00
never executed: eptr++;
0
3575 }
never executed: }
0
3576 break;
never executed: break;
0
3577 -
3578 case OP_WHITESPACE: -
3579 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:70
yes
Evaluation Count:8
8-70
3580 { -
3581 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:68
2-68
3582 { -
3583 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-2
3584 return 0;
executed: return 0;
Execution Count:2
2
3585 } -
3586 if (*eptr >= 128 || (md->ctypes[*eptr] & 0x01) == 0)
partially evaluated: *eptr >= 128
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:68
evaluated: (md->ctypes[*eptr] & 0x01) == 0
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:8
0-68
3587 return 0;
executed: return 0;
Execution Count:60
60
3588 eptr++; -
3589 -
3590 }
executed: }
Execution Count:8
8
3591 break;
executed: break;
Execution Count:8
8
3592 -
3593 case OP_NOT_WORDCHAR: -
3594 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:74
yes
Evaluation Count:12
12-74
3595 { -
3596 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:72
2-72
3597 { -
3598 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-2
3599 return 0;
executed: return 0;
Execution Count:2
2
3600 } -
3601 if (*eptr < 128 && (md->ctypes[*eptr] & 0x10) != 0)
partially evaluated: *eptr < 128
TRUEFALSE
yes
Evaluation Count:72
no
Evaluation Count:0
evaluated: (md->ctypes[*eptr] & 0x10) != 0
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:12
0-72
3602 return 0;
executed: return 0;
Execution Count:60
60
3603 eptr++; -
3604 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
evaluated: (eptr < md->end_subject)
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:2
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:10
never executed: eptr++;
0-10
3605 }
executed: }
Execution Count:12
12
3606 break;
executed: break;
Execution Count:12
12
3607 -
3608 case OP_WORDCHAR: -
3609 for (i = 1; i <= min; i++)
evaluated: i <= min
TRUEFALSE
yes
Evaluation Count:65
yes
Evaluation Count:42
42-65
3610 { -
3611 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:60
5-60
3612 { -
3613 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0-5
3614 return 0;
executed: return 0;
Execution Count:5
5
3615 } -
3616 if (*eptr >= 128 || (md->ctypes[*eptr] & 0x10) == 0)
partially evaluated: *eptr >= 128
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:60
evaluated: (md->ctypes[*eptr] & 0x10) == 0
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:50
0-60
3617 return 0;
executed: return 0;
Execution Count:10
10
3618 eptr++; -
3619 -
3620 }
executed: }
Execution Count:50
50
3621 break;
executed: break;
Execution Count:42
42
3622 -
3623 default: -
3624 return (-14);
never executed: return (-14);
0
3625 }
never executed: }
0
3626 -
3627 else -
3628 -
3629 -
3630 -
3631 -
3632 -
3633 switch(ctype) -
3634 { -
3635 case OP_ANY: -
3636 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3637 { -
3638 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3639 { -
3640 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3641 return 0;
never executed: return 0;
0
3642 } -
3643 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0;
never evaluated: (md->nltype != 0)
never executed: return 0;
0
3644 eptr++; -
3645 }
never executed: }
0
3646 break;
never executed: break;
0
3647 -
3648 case OP_ALLANY: -
3649 if (eptr > md->end_subject - min)
never evaluated: eptr > md->end_subject - min
0
3650 { -
3651 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3652 return 0;
never executed: return 0;
0
3653 } -
3654 eptr += min; -
3655 break;
never executed: break;
0
3656 -
3657 case OP_ANYBYTE: -
3658 if (eptr > md->end_subject - min)
never evaluated: eptr > md->end_subject - min
0
3659 { -
3660 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3661 return 0;
never executed: return 0;
0
3662 } -
3663 eptr += min; -
3664 break;
never executed: break;
0
3665 -
3666 case OP_ANYNL: -
3667 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3668 { -
3669 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3670 { -
3671 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3672 return 0;
never executed: return 0;
0
3673 } -
3674 switch(*eptr++) -
3675 { -
3676 default: return 0;
never executed: return 0;
0
3677 -
3678 case 0x000d: -
3679 if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
never evaluated: eptr < md->end_subject
never evaluated: *eptr == 0x0a
never executed: eptr++;
0
3680 break;
never executed: break;
0
3681 -
3682 case 0x000a: -
3683 break;
never executed: break;
0
3684 -
3685 case 0x000b: -
3686 case 0x000c: -
3687 case 0x0085: -
3688 -
3689 case 0x2028: -
3690 case 0x2029: -
3691 -
3692 if (md->bsr_anycrlf) return 0;
never evaluated: md->bsr_anycrlf
never executed: return 0;
0
3693 break;
never executed: break;
0
3694 } -
3695 }
never executed: }
0
3696 break;
never executed: break;
0
3697 -
3698 case OP_NOT_HSPACE: -
3699 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3700 { -
3701 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3702 { -
3703 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3704 return 0;
never executed: return 0;
0
3705 } -
3706 switch(*eptr++) -
3707 { -
3708 default: break;
never executed: break;
0
3709 case 0x09: -
3710 case 0x20: -
3711 case 0xa0: -
3712 -
3713 case 0x1680: -
3714 case 0x180e: -
3715 case 0x2000: -
3716 case 0x2001: -
3717 case 0x2002: -
3718 case 0x2003: -
3719 case 0x2004: -
3720 case 0x2005: -
3721 case 0x2006: -
3722 case 0x2007: -
3723 case 0x2008: -
3724 case 0x2009: -
3725 case 0x200A: -
3726 case 0x202f: -
3727 case 0x205f: -
3728 case 0x3000: -
3729 -
3730 return 0;
never executed: return 0;
0
3731 } -
3732 }
never executed: }
0
3733 break;
never executed: break;
0
3734 -
3735 case OP_HSPACE: -
3736 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3737 { -
3738 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3739 { -
3740 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3741 return 0;
never executed: return 0;
0
3742 } -
3743 switch(*eptr++) -
3744 { -
3745 default: return 0;
never executed: return 0;
0
3746 case 0x09: -
3747 case 0x20: -
3748 case 0xa0: -
3749 -
3750 case 0x1680: -
3751 case 0x180e: -
3752 case 0x2000: -
3753 case 0x2001: -
3754 case 0x2002: -
3755 case 0x2003: -
3756 case 0x2004: -
3757 case 0x2005: -
3758 case 0x2006: -
3759 case 0x2007: -
3760 case 0x2008: -
3761 case 0x2009: -
3762 case 0x200A: -
3763 case 0x202f: -
3764 case 0x205f: -
3765 case 0x3000: -
3766 -
3767 break;
never executed: break;
0
3768 } -
3769 }
never executed: }
0
3770 break;
never executed: break;
0
3771 -
3772 case OP_NOT_VSPACE: -
3773 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3774 { -
3775 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3776 { -
3777 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3778 return 0;
never executed: return 0;
0
3779 } -
3780 switch(*eptr++) -
3781 { -
3782 default: break;
never executed: break;
0
3783 case 0x0a: -
3784 case 0x0b: -
3785 case 0x0c: -
3786 case 0x0d: -
3787 case 0x85: -
3788 -
3789 case 0x2028: -
3790 case 0x2029: -
3791 -
3792 return 0;
never executed: return 0;
0
3793 } -
3794 }
never executed: }
0
3795 break;
never executed: break;
0
3796 -
3797 case OP_VSPACE: -
3798 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3799 { -
3800 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3801 { -
3802 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3803 return 0;
never executed: return 0;
0
3804 } -
3805 switch(*eptr++) -
3806 { -
3807 default: return 0;
never executed: return 0;
0
3808 case 0x0a: -
3809 case 0x0b: -
3810 case 0x0c: -
3811 case 0x0d: -
3812 case 0x85: -
3813 -
3814 case 0x2028: -
3815 case 0x2029: -
3816 -
3817 break;
never executed: break;
0
3818 } -
3819 }
never executed: }
0
3820 break;
never executed: break;
0
3821 -
3822 case OP_NOT_DIGIT: -
3823 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3824 { -
3825 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3826 { -
3827 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3828 return 0;
never executed: return 0;
0
3829 } -
3830 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x04) != 0)
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x04) != 0
0
3831 return 0;
never executed: return 0;
0
3832 eptr++; -
3833 }
never executed: }
0
3834 break;
never executed: break;
0
3835 -
3836 case OP_DIGIT: -
3837 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3838 { -
3839 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3840 { -
3841 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
never executed: return (-12);
never executed: }
0
3842 return 0;
never executed: return 0;
0
3843 } -
3844 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x04) == 0)
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x04) == 0
0
3845 return 0;
never executed: return 0;
0
3846 eptr++; -
3847 }
never executed: }
0
3848 break;
never executed: break;
0
3849 -
3850 case OP_NOT_WHITESPACE: -
3851 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3852 { -
3853 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3854 { -
3855 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3856 return 0;
never executed: return 0;
0
3857 } -
3858 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x01) != 0)
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x01) != 0
0
3859 return 0;
never executed: return 0;
0
3860 eptr++; -
3861 }
never executed: }
0
3862 break;
never executed: break;
0
3863 -
3864 case OP_WHITESPACE: -
3865 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3866 { -
3867 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3868 { -
3869 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3870 return 0;
never executed: return 0;
0
3871 } -
3872 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x01) == 0)
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x01) == 0
0
3873 return 0;
never executed: return 0;
0
3874 eptr++; -
3875 }
never executed: }
0
3876 break;
never executed: break;
0
3877 -
3878 case OP_NOT_WORDCHAR: -
3879 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3880 { -
3881 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3882 { -
3883 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3884 return 0;
never executed: return 0;
0
3885 } -
3886 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x10) != 0)
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x10) != 0
0
3887 return 0;
never executed: return 0;
0
3888 eptr++; -
3889 }
never executed: }
0
3890 break;
never executed: break;
0
3891 -
3892 case OP_WORDCHAR: -
3893 for (i = 1; i <= min; i++)
never evaluated: i <= min
0
3894 { -
3895 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3896 { -
3897 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3898 return 0;
never executed: return 0;
0
3899 } -
3900 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x10) == 0)
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x10) == 0
0
3901 return 0;
never executed: return 0;
0
3902 eptr++; -
3903 }
never executed: }
0
3904 break;
never executed: break;
0
3905 -
3906 default: -
3907 return (-14);
never executed: return (-14);
0
3908 }
never executed: }
0
3909 } -
3910 -
3911 -
3912 -
3913 if (min == max) continue;
executed: continue;
Execution Count:6
evaluated: min == max
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:204
6-204
3914 -
3915 -
3916 -
3917 -
3918 -
3919 if (minimize)
evaluated: minimize
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:197
7-197
3920 { -
3921 -
3922 if (prop_type >= 0)
partially evaluated: prop_type >= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
0-7
3923 { -
3924 switch(prop_type) -
3925 { -
3926 case 0: -
3927 for (i = min;; i++) -
3928 { -
3929 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3930 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
3931 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
3932 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3933 { -
3934 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3935 return 0;
never executed: return 0;
0
3936 } -
3937 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
3938 if (prop_fail_result) return 0;
never executed: return 0;
never evaluated: prop_fail_result
0
3939 }
never executed: }
0
3940 -
3941 -
3942 case 1:
code before this statement never executed: case 1:
0
3943 for (i = min;; i++) -
3944 { -
3945 int chartype; -
3946 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3947 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
3948 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
3949 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3950 { -
3951 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3952 return 0;
never executed: return 0;
0
3953 } -
3954 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
3955 chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; -
3956 if ((chartype == ucp_Lu ||
never evaluated: chartype == ucp_Lu
0
3957 chartype == ucp_Ll ||
never evaluated: chartype == ucp_Ll
0
3958 chartype == ucp_Lt) == prop_fail_result)
never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result
never evaluated: chartype == ucp_Lt
0
3959 return 0;
never executed: return 0;
0
3960 }
never executed: }
0
3961 -
3962 -
3963 case 2:
code before this statement never executed: case 2:
0
3964 for (i = min;; i++) -
3965 { -
3966 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3967 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
3968 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
3969 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3970 { -
3971 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3972 return 0;
never executed: return 0;
0
3973 } -
3974 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
3975 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result
0
3976 return 0;
never executed: return 0;
0
3977 }
never executed: }
0
3978 -
3979 -
3980 case 3:
code before this statement never executed: case 3:
0
3981 for (i = min;; i++) -
3982 { -
3983 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
3984 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
3985 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
3986 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
3987 { -
3988 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
3989 return 0;
never executed: return 0;
0
3990 } -
3991 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
3992 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result)
never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result
0
3993 return 0;
never executed: return 0;
0
3994 }
never executed: }
0
3995 -
3996 -
3997 case 4:
code before this statement never executed: case 4:
0
3998 for (i = min;; i++) -
3999 { -
4000 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4001 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4002 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4003 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4004 { -
4005 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4006 return 0;
never executed: return 0;
0
4007 } -
4008 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4009 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result)
never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result
0
4010 return 0;
never executed: return 0;
0
4011 }
never executed: }
0
4012 -
4013 -
4014 case 5:
code before this statement never executed: case 5:
0
4015 for (i = min;; i++) -
4016 { -
4017 int category; -
4018 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4019 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4020 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4021 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4022 { -
4023 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4024 return 0;
never executed: return 0;
0
4025 } -
4026 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4027 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
4028 if ((category == ucp_L || category == ucp_N) == prop_fail_result)
never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result
never evaluated: category == ucp_L
never evaluated: category == ucp_N
0
4029 return 0;
never executed: return 0;
0
4030 }
never executed: }
0
4031 -
4032 -
4033 case 6:
code before this statement never executed: case 6:
0
4034 for (i = min;; i++) -
4035 { -
4036 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4037 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4038 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4039 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4040 { -
4041 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4042 return 0;
never executed: return 0;
0
4043 } -
4044 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4045 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
4046 c == '\014' || c == '\015')
never evaluated: c == '\014'
never evaluated: c == '\015'
0
4047 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result
0
4048 return 0;
never executed: return 0;
0
4049 }
never executed: }
0
4050 -
4051 -
4052 case 7:
code before this statement never executed: case 7:
0
4053 for (i = min;; i++) -
4054 { -
4055 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4056 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4057 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4058 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4059 { -
4060 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4061 return 0;
never executed: return 0;
0
4062 } -
4063 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4064 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
4065 c == '\013' || c == '\014' || c == '\015')
never evaluated: c == '\013'
never evaluated: c == '\014'
never evaluated: c == '\015'
0
4066 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result
0
4067 return 0;
never executed: return 0;
0
4068 }
never executed: }
0
4069 -
4070 -
4071 case 8:
code before this statement never executed: case 8:
0
4072 for (i = min;; i++) -
4073 { -
4074 int category; -
4075 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4076 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4077 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4078 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4079 { -
4080 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4081 return 0;
never executed: return 0;
0
4082 } -
4083 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4084 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
4085 if ((category == ucp_L ||
never evaluated: category == ucp_L
0
4086 category == ucp_N ||
never evaluated: category == ucp_N
0
4087 c == '\137')
never evaluated: c == '\137'
0
4088 == prop_fail_result)
never evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result
0
4089 return 0;
never executed: return 0;
0
4090 }
never executed: }
0
4091 -
4092 -
4093 -
4094 -
4095 default: -
4096 return (-14);
never executed: return (-14);
0
4097 } -
4098 }
never executed: }
0
4099 -
4100 -
4101 -
4102 -
4103 else if (ctype == OP_EXTUNI)
partially evaluated: ctype == OP_EXTUNI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
0-7
4104 { -
4105 for (i = min;; i++) -
4106 { -
4107 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4108 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4109 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4110 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4111 { -
4112 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4113 return 0;
never executed: return 0;
0
4114 } -
4115 c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4116 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0;
never executed: return 0;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M
0
4117 while (eptr < md->end_subject)
never evaluated: eptr < md->end_subject
0
4118 { -
4119 int len = 1; -
4120 if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; }
never executed: c = *eptr;
never executed: }
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
never evaluated: !utf
0
4121 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break;
never executed: break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M
0
4122 eptr += len; -
4123 }
never executed: }
0
4124 }
never executed: }
0
4125 }
never executed: }
0
4126 else -
4127 -
4128 -
4129 -
4130 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
4131 { -
4132 for (i = min;; i++) -
4133 { -
4134 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4135 if (rrc != 0) return rrc;
executed: return rrc;
Execution Count:7
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:2
2-7
4136 if (i >= max) return 0;
never executed: return 0;
partially evaluated: i >= max
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4137 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4138 { -
4139 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4140 return 0;
never executed: return 0;
0
4141 } -
4142 if (ctype == OP_ANY && ((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) ))
partially evaluated: ctype == OP_ANY
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4143 return 0;
never executed: return 0;
0
4144 c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };;
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4145 switch(ctype) -
4146 { -
4147 case OP_ANY: -
4148 case OP_ALLANY: -
4149 case OP_ANYBYTE: -
4150 break;
executed: break;
Execution Count:2
2
4151 -
4152 case OP_ANYNL: -
4153 switch(c) -
4154 { -
4155 default: return 0;
never executed: return 0;
0
4156 case 0x000d: -
4157 if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
never executed: eptr++;
never evaluated: eptr < md->end_subject
never evaluated: *eptr == 0x0a
0
4158 break;
never executed: break;
0
4159 case 0x000a: -
4160 break;
never executed: break;
0
4161 -
4162 case 0x000b: -
4163 case 0x000c: -
4164 case 0x0085: -
4165 case 0x2028: -
4166 case 0x2029: -
4167 if (md->bsr_anycrlf) return 0;
never executed: return 0;
never evaluated: md->bsr_anycrlf
0
4168 break;
never executed: break;
0
4169 } -
4170 break;
never executed: break;
0
4171 -
4172 case OP_NOT_HSPACE: -
4173 switch(c) -
4174 { -
4175 default: break;
never executed: break;
0
4176 case 0x09: -
4177 case 0x20: -
4178 case 0xa0: -
4179 case 0x1680: -
4180 case 0x180e: -
4181 case 0x2000: -
4182 case 0x2001: -
4183 case 0x2002: -
4184 case 0x2003: -
4185 case 0x2004: -
4186 case 0x2005: -
4187 case 0x2006: -
4188 case 0x2007: -
4189 case 0x2008: -
4190 case 0x2009: -
4191 case 0x200A: -
4192 case 0x202f: -
4193 case 0x205f: -
4194 case 0x3000: -
4195 return 0;
never executed: return 0;
0
4196 } -
4197 break;
never executed: break;
0
4198 -
4199 case OP_HSPACE: -
4200 switch(c) -
4201 { -
4202 default: return 0;
never executed: return 0;
0
4203 case 0x09: -
4204 case 0x20: -
4205 case 0xa0: -
4206 case 0x1680: -
4207 case 0x180e: -
4208 case 0x2000: -
4209 case 0x2001: -
4210 case 0x2002: -
4211 case 0x2003: -
4212 case 0x2004: -
4213 case 0x2005: -
4214 case 0x2006: -
4215 case 0x2007: -
4216 case 0x2008: -
4217 case 0x2009: -
4218 case 0x200A: -
4219 case 0x202f: -
4220 case 0x205f: -
4221 case 0x3000: -
4222 break;
never executed: break;
0
4223 } -
4224 break;
never executed: break;
0
4225 -
4226 case OP_NOT_VSPACE: -
4227 switch(c) -
4228 { -
4229 default: break;
never executed: break;
0
4230 case 0x0a: -
4231 case 0x0b: -
4232 case 0x0c: -
4233 case 0x0d: -
4234 case 0x85: -
4235 case 0x2028: -
4236 case 0x2029: -
4237 return 0;
never executed: return 0;
0
4238 } -
4239 break;
never executed: break;
0
4240 -
4241 case OP_VSPACE: -
4242 switch(c) -
4243 { -
4244 default: return 0;
never executed: return 0;
0
4245 case 0x0a: -
4246 case 0x0b: -
4247 case 0x0c: -
4248 case 0x0d: -
4249 case 0x85: -
4250 case 0x2028: -
4251 case 0x2029: -
4252 break;
never executed: break;
0
4253 } -
4254 break;
never executed: break;
0
4255 -
4256 case OP_NOT_DIGIT: -
4257 if (c < 256 && (md->ctypes[c] & 0x04) != 0)
never evaluated: c < 256
never evaluated: (md->ctypes[c] & 0x04) != 0
0
4258 return 0;
never executed: return 0;
0
4259 break;
never executed: break;
0
4260 -
4261 case OP_DIGIT: -
4262 if (c >= 256 || (md->ctypes[c] & 0x04) == 0)
never evaluated: c >= 256
never evaluated: (md->ctypes[c] & 0x04) == 0
0
4263 return 0;
never executed: return 0;
0
4264 break;
never executed: break;
0
4265 -
4266 case OP_NOT_WHITESPACE: -
4267 if (c < 256 && (md->ctypes[c] & 0x01) != 0)
never evaluated: c < 256
never evaluated: (md->ctypes[c] & 0x01) != 0
0
4268 return 0;
never executed: return 0;
0
4269 break;
never executed: break;
0
4270 -
4271 case OP_WHITESPACE: -
4272 if (c >= 256 || (md->ctypes[c] & 0x01) == 0)
never evaluated: c >= 256
never evaluated: (md->ctypes[c] & 0x01) == 0
0
4273 return 0;
never executed: return 0;
0
4274 break;
never executed: break;
0
4275 -
4276 case OP_NOT_WORDCHAR: -
4277 if (c < 256 && (md->ctypes[c] & 0x10) != 0)
never evaluated: c < 256
never evaluated: (md->ctypes[c] & 0x10) != 0
0
4278 return 0;
never executed: return 0;
0
4279 break;
never executed: break;
0
4280 -
4281 case OP_WORDCHAR: -
4282 if (c >= 256 || (md->ctypes[c] & 0x10) == 0)
never evaluated: c >= 256
never evaluated: (md->ctypes[c] & 0x10) == 0
0
4283 return 0;
never executed: return 0;
0
4284 break;
never executed: break;
0
4285 -
4286 default: -
4287 return (-14);
never executed: return (-14);
0
4288 } -
4289 }
executed: }
Execution Count:2
2
4290 }
never executed: }
0
4291 else -
4292 -
4293 -
4294 { -
4295 for (i = min;; i++) -
4296 { -
4297 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4298 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4299 if (i >= max) return 0;
never executed: return 0;
never evaluated: i >= max
0
4300 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4301 { -
4302 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4303 return 0;
never executed: return 0;
0
4304 } -
4305 if (ctype == OP_ANY && ((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) ))
never evaluated: ctype == OP_ANY
never evaluated: (md->nltype != 0)
0
4306 return 0;
never executed: return 0;
0
4307 c = *eptr++; -
4308 switch(ctype) -
4309 { -
4310 case OP_ANY: -
4311 case OP_ALLANY: -
4312 case OP_ANYBYTE: -
4313 break;
never executed: break;
0
4314 -
4315 case OP_ANYNL: -
4316 switch(c) -
4317 { -
4318 default: return 0;
never executed: return 0;
0
4319 case 0x000d: -
4320 if (eptr < md->end_subject && *eptr == 0x0a) eptr++;
never executed: eptr++;
never evaluated: eptr < md->end_subject
never evaluated: *eptr == 0x0a
0
4321 break;
never executed: break;
0
4322 -
4323 case 0x000a: -
4324 break;
never executed: break;
0
4325 -
4326 case 0x000b: -
4327 case 0x000c: -
4328 case 0x0085: -
4329 -
4330 case 0x2028: -
4331 case 0x2029: -
4332 -
4333 if (md->bsr_anycrlf) return 0;
never executed: return 0;
never evaluated: md->bsr_anycrlf
0
4334 break;
never executed: break;
0
4335 } -
4336 break;
never executed: break;
0
4337 -
4338 case OP_NOT_HSPACE: -
4339 switch(c) -
4340 { -
4341 default: break;
never executed: break;
0
4342 case 0x09: -
4343 case 0x20: -
4344 case 0xa0: -
4345 -
4346 case 0x1680: -
4347 case 0x180e: -
4348 case 0x2000: -
4349 case 0x2001: -
4350 case 0x2002: -
4351 case 0x2003: -
4352 case 0x2004: -
4353 case 0x2005: -
4354 case 0x2006: -
4355 case 0x2007: -
4356 case 0x2008: -
4357 case 0x2009: -
4358 case 0x200A: -
4359 case 0x202f: -
4360 case 0x205f: -
4361 case 0x3000: -
4362 -
4363 return 0;
never executed: return 0;
0
4364 } -
4365 break;
never executed: break;
0
4366 -
4367 case OP_HSPACE: -
4368 switch(c) -
4369 { -
4370 default: return 0;
never executed: return 0;
0
4371 case 0x09: -
4372 case 0x20: -
4373 case 0xa0: -
4374 -
4375 case 0x1680: -
4376 case 0x180e: -
4377 case 0x2000: -
4378 case 0x2001: -
4379 case 0x2002: -
4380 case 0x2003: -
4381 case 0x2004: -
4382 case 0x2005: -
4383 case 0x2006: -
4384 case 0x2007: -
4385 case 0x2008: -
4386 case 0x2009: -
4387 case 0x200A: -
4388 case 0x202f: -
4389 case 0x205f: -
4390 case 0x3000: -
4391 -
4392 break;
never executed: break;
0
4393 } -
4394 break;
never executed: break;
0
4395 -
4396 case OP_NOT_VSPACE: -
4397 switch(c) -
4398 { -
4399 default: break;
never executed: break;
0
4400 case 0x0a: -
4401 case 0x0b: -
4402 case 0x0c: -
4403 case 0x0d: -
4404 case 0x85: -
4405 -
4406 case 0x2028: -
4407 case 0x2029: -
4408 -
4409 return 0;
never executed: return 0;
0
4410 } -
4411 break;
never executed: break;
0
4412 -
4413 case OP_VSPACE: -
4414 switch(c) -
4415 { -
4416 default: return 0;
never executed: return 0;
0
4417 case 0x0a: -
4418 case 0x0b: -
4419 case 0x0c: -
4420 case 0x0d: -
4421 case 0x85: -
4422 -
4423 case 0x2028: -
4424 case 0x2029: -
4425 -
4426 break;
never executed: break;
0
4427 } -
4428 break;
never executed: break;
0
4429 -
4430 case OP_NOT_DIGIT: -
4431 if (((c) <= 255u) && (md->ctypes[c] & 0x04) != 0) return 0;
never executed: return 0;
never evaluated: ((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x04) != 0
0
4432 break;
never executed: break;
0
4433 -
4434 case OP_DIGIT: -
4435 if (!((c) <= 255u) || (md->ctypes[c] & 0x04) == 0) return 0;
never executed: return 0;
never evaluated: !((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x04) == 0
0
4436 break;
never executed: break;
0
4437 -
4438 case OP_NOT_WHITESPACE: -
4439 if (((c) <= 255u) && (md->ctypes[c] & 0x01) != 0) return 0;
never executed: return 0;
never evaluated: ((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x01) != 0
0
4440 break;
never executed: break;
0
4441 -
4442 case OP_WHITESPACE: -
4443 if (!((c) <= 255u) || (md->ctypes[c] & 0x01) == 0) return 0;
never executed: return 0;
never evaluated: !((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x01) == 0
0
4444 break;
never executed: break;
0
4445 -
4446 case OP_NOT_WORDCHAR: -
4447 if (((c) <= 255u) && (md->ctypes[c] & 0x10) != 0) return 0;
never executed: return 0;
never evaluated: ((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x10) != 0
0
4448 break;
never executed: break;
0
4449 -
4450 case OP_WORDCHAR: -
4451 if (!((c) <= 255u) || (md->ctypes[c] & 0x10) == 0) return 0;
never executed: return 0;
never evaluated: !((c) <= 255u)
never evaluated: (md->ctypes[c] & 0x10) == 0
0
4452 break;
never executed: break;
0
4453 -
4454 default: -
4455 return (-14);
never executed: return (-14);
0
4456 } -
4457 }
never executed: }
0
4458 }
never executed: }
0
4459 -
4460 } -
4461 -
4462 -
4463 -
4464 -
4465 -
4466 else -
4467 { -
4468 pp = eptr; -
4469 -
4470 -
4471 if (prop_type >= 0)
evaluated: prop_type >= 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:195
2-195
4472 { -
4473 switch(prop_type) -
4474 { -
4475 case 0: -
4476 for (i = min; i < max; i++)
never evaluated: i < max
0
4477 { -
4478 int len = 1; -
4479 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4480 { -
4481 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4482 break;
never executed: break;
0
4483 } -
4484 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4485 if (prop_fail_result) break;
never executed: break;
never evaluated: prop_fail_result
0
4486 eptr+= len; -
4487 }
never executed: }
0
4488 break;
never executed: break;
0
4489 -
4490 case 1: -
4491 for (i = min; i < max; i++)
never evaluated: i < max
0
4492 { -
4493 int chartype; -
4494 int len = 1; -
4495 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4496 { -
4497 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4498 break;
never executed: break;
0
4499 } -
4500 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4501 chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; -
4502 if ((chartype == ucp_Lu ||
never evaluated: chartype == ucp_Lu
0
4503 chartype == ucp_Ll ||
never evaluated: chartype == ucp_Ll
0
4504 chartype == ucp_Lt) == prop_fail_result)
never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result
never evaluated: chartype == ucp_Lt
0
4505 break;
never executed: break;
0
4506 eptr+= len; -
4507 }
never executed: }
0
4508 break;
never executed: break;
0
4509 -
4510 case 2: -
4511 for (i = min; i < max; i++)
never evaluated: i < max
0
4512 { -
4513 int len = 1; -
4514 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4515 { -
4516 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4517 break;
never executed: break;
0
4518 } -
4519 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4520 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result) break;
never executed: break;
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result
0
4521 eptr+= len; -
4522 }
never executed: }
0
4523 break;
never executed: break;
0
4524 -
4525 case 3: -
4526 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:5
no
Evaluation Count:0
0-5
4527 { -
4528 int len = 1; -
4529 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:4
1-4
4530 { -
4531 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: eptr > md->start_used_ptr
0-1
4532 break;
executed: break;
Execution Count:1
1
4533 } -
4534 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
executed: }
Execution Count:1
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:3
0-4
4535 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result) break;
never executed: break;
partially evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
4536 eptr+= len; -
4537 }
executed: }
Execution Count:4
4
4538 break;
executed: break;
Execution Count:1
1
4539 -
4540 case 4: -
4541 for (i = min; i < max; i++)
never evaluated: i < max
0
4542 { -
4543 int len = 1; -
4544 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4545 { -
4546 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4547 break;
never executed: break;
0
4548 } -
4549 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4550 if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result) break;
never executed: break;
never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result
0
4551 eptr+= len; -
4552 }
never executed: }
0
4553 break;
never executed: break;
0
4554 -
4555 case 5: -
4556 for (i = min; i < max; i++)
never evaluated: i < max
0
4557 { -
4558 int category; -
4559 int len = 1; -
4560 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4561 { -
4562 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4563 break;
never executed: break;
0
4564 } -
4565 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4566 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
4567 if ((category == ucp_L || category == ucp_N) == prop_fail_result)
never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result
never evaluated: category == ucp_L
never evaluated: category == ucp_N
0
4568 break;
never executed: break;
0
4569 eptr+= len; -
4570 }
never executed: }
0
4571 break;
never executed: break;
0
4572 -
4573 case 6: -
4574 for (i = min; i < max; i++)
never evaluated: i < max
0
4575 { -
4576 int len = 1; -
4577 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4578 { -
4579 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4580 break;
never executed: break;
0
4581 } -
4582 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4583 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
4584 c == '\014' || c == '\015')
never evaluated: c == '\014'
never evaluated: c == '\015'
0
4585 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result
0
4586 break;
never executed: break;
0
4587 eptr+= len; -
4588 }
never executed: }
0
4589 break;
never executed: break;
0
4590 -
4591 case 7: -
4592 for (i = min; i < max; i++)
never evaluated: i < max
0
4593 { -
4594 int len = 1; -
4595 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4596 { -
4597 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4598 break;
never executed: break;
0
4599 } -
4600 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: utf
never evaluated: (c & 0xfc00) == 0xd800
0
4601 if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' ||
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z
never evaluated: c == '\011'
never evaluated: c == '\012'
0
4602 c == '\013' || c == '\014' || c == '\015')
never evaluated: c == '\013'
never evaluated: c == '\014'
never evaluated: c == '\015'
0
4603 == prop_fail_result)
never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result
0
4604 break;
never executed: break;
0
4605 eptr+= len; -
4606 }
never executed: }
0
4607 break;
never executed: break;
0
4608 -
4609 case 8: -
4610 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:5
no
Evaluation Count:0
0-5
4611 { -
4612 int category; -
4613 int len = 1; -
4614 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
4615 { -
4616 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4617 break;
never executed: break;
0
4618 } -
4619 c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:5
no
Evaluation Count:0
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
4620 category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; -
4621 if ((category == ucp_L || category == ucp_N ||
evaluated: category == ucp_L
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:1
partially evaluated: category == ucp_N
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-4
4622 c == '\137') == prop_fail_result)
evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:4
partially evaluated: c == '\137'
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-4
4623 break;
executed: break;
Execution Count:1
1
4624 eptr+= len; -
4625 }
executed: }
Execution Count:4
4
4626 break;
executed: break;
Execution Count:1
1
4627 -
4628 default: -
4629 return (-14);
never executed: return (-14);
0
4630 } -
4631 -
4632 -
4633 -
4634 if (possessive) continue;
never executed: continue;
partially evaluated: possessive
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4635 for(;;) -
4636 { -
4637 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4638 if (rrc != 0) return rrc;
executed: return rrc;
Execution Count:2
partially evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
4639 if (eptr-- == pp) break;
never executed: break;
never evaluated: eptr-- == pp
0
4640 if (utf) if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never executed: eptr--;
never evaluated: utf
never evaluated: (*eptr & 0xfc00) == 0xdc00
0
4641 }
never executed: }
0
4642 }
never executed: }
0
4643 -
4644 -
4645 -
4646 -
4647 else if (ctype == OP_EXTUNI)
partially evaluated: ctype == OP_EXTUNI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:195
0-195
4648 { -
4649 for (i = min; i < max; i++)
never evaluated: i < max
0
4650 { -
4651 int len = 1; -
4652 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4653 { -
4654 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4655 break;
never executed: break;
0
4656 } -
4657 if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; }
never executed: c = *eptr;
never executed: }
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
never evaluated: !utf
0
4658 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) break;
never executed: break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M
0
4659 eptr += len; -
4660 while (eptr < md->end_subject)
never evaluated: eptr < md->end_subject
0
4661 { -
4662 len = 1; -
4663 if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; }
never executed: c = *eptr;
never executed: }
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
never evaluated: !utf
0
4664 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break;
never executed: break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M
0
4665 eptr += len; -
4666 }
never executed: }
0
4667 }
never executed: }
0
4668 -
4669 -
4670 -
4671 if (possessive) continue;
never executed: continue;
never evaluated: possessive
0
4672 -
4673 for(;;) -
4674 { -
4675 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4676 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
4677 if (eptr-- == pp) break;
never executed: break;
never evaluated: eptr-- == pp
0
4678 for (;;) -
4679 { -
4680 if (!utf) c = *eptr; else
never executed: c = *eptr;
never evaluated: !utf
0
4681 { -
4682 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never executed: eptr--;
never evaluated: (*eptr & 0xfc00) == 0xdc00
0
4683 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4684 }
never executed: }
0
4685 if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break;
never executed: break;
never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M
0
4686 eptr--; -
4687 }
never executed: }
0
4688 }
never executed: }
0
4689 }
never executed: }
0
4690 -
4691 else -
4692 -
4693 -
4694 -
4695 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:195
no
Evaluation Count:0
0-195
4696 { -
4697 switch(ctype) -
4698 { -
4699 case OP_ANY: -
4700 if (max < 2147483647)
partially evaluated: max < 2147483647
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:115
0-115
4701 { -
4702 for (i = min; i < max; i++)
never evaluated: i < max
0
4703 { -
4704 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4705 { -
4706 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4707 break;
never executed: break;
0
4708 } -
4709 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break;
never executed: break;
never evaluated: (md->nltype != 0)
0
4710 eptr++; -
4711 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
never executed: eptr++;
never evaluated: (eptr < md->end_subject)
never evaluated: ((*eptr) & 0xfc00) == 0xdc00
0
4712 }
never executed: }
0
4713 }
never executed: }
0
4714 -
4715 -
4716 -
4717 else -
4718 { -
4719 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:337
no
Evaluation Count:0
0-337
4720 { -
4721 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:57
yes
Evaluation Count:280
57-280
4722 { -
4723 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:57
never evaluated: eptr > md->start_used_ptr
0-57
4724 break;
executed: break;
Execution Count:57
57
4725 } -
4726 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break;
executed: break;
Execution Count:58
evaluated: (md->nltype != 0)
TRUEFALSE
yes
Evaluation Count:29
yes
Evaluation Count:251
29-251
4727 eptr++; -
4728 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
never executed: eptr++;
evaluated: (eptr < md->end_subject)
TRUEFALSE
yes
Evaluation Count:182
yes
Evaluation Count:40
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:182
0-182
4729 }
executed: }
Execution Count:222
222
4730 }
executed: }
Execution Count:115
115
4731 break;
executed: break;
Execution Count:115
115
4732 -
4733 case OP_ALLANY: -
4734 if (max < 2147483647)
partially evaluated: max < 2147483647
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
4735 { -
4736 for (i = min; i < max; i++)
never evaluated: i < max
0
4737 { -
4738 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4739 { -
4740 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4741 break;
never executed: break;
0
4742 } -
4743 eptr++; -
4744 if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++;
never executed: eptr++;
never evaluated: (eptr < md->end_subject)
never evaluated: ((*eptr) & 0xfc00) == 0xdc00
0
4745 }
never executed: }
0
4746 }
never executed: }
0
4747 else -
4748 { -
4749 eptr = md->end_subject; -
4750 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: eptr > md->start_used_ptr
0-1
4751 }
executed: }
Execution Count:1
1
4752 break;
executed: break;
Execution Count:1
1
4753 -
4754 -
4755 -
4756 case OP_ANYBYTE: -
4757 c = max - min; -
4758 if (c > (unsigned int)(md->end_subject - eptr))
never evaluated: c > (unsigned int)(md->end_subject - eptr)
0
4759 { -
4760 eptr = md->end_subject; -
4761 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4762 }
never executed: }
0
4763 else eptr += c;
never executed: eptr += c;
0
4764 break;
never executed: break;
0
4765 -
4766 case OP_ANYNL: -
4767 for (i = min; i < max; i++)
never evaluated: i < max
0
4768 { -
4769 int len = 1; -
4770 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4771 { -
4772 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4773 break;
never executed: break;
0
4774 } -
4775 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4776 if (c == 0x000d)
never evaluated: c == 0x000d
0
4777 { -
4778 if (++eptr >= md->end_subject) break;
never executed: break;
never evaluated: ++eptr >= md->end_subject
0
4779 if (*eptr == 0x000a) eptr++;
never executed: eptr++;
never evaluated: *eptr == 0x000a
0
4780 }
never executed: }
0
4781 else -
4782 { -
4783 if (c != 0x000a &&
never evaluated: c != 0x000a
0
4784 (md->bsr_anycrlf ||
never evaluated: md->bsr_anycrlf
0
4785 (c != 0x000b && c != 0x000c &&
never evaluated: c != 0x000b
never evaluated: c != 0x000c
0
4786 c != 0x0085 && c != 0x2028 && c != 0x2029)))
never evaluated: c != 0x0085
never evaluated: c != 0x2028
never evaluated: c != 0x2029
0
4787 break;
never executed: break;
0
4788 eptr += len; -
4789 }
never executed: }
0
4790 } -
4791 break;
never executed: break;
0
4792 -
4793 case OP_NOT_HSPACE: -
4794 case OP_HSPACE: -
4795 for (i = min; i < max; i++)
never evaluated: i < max
0
4796 { -
4797 BOOL gotspace; -
4798 int len = 1; -
4799 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4800 { -
4801 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4802 break;
never executed: break;
0
4803 } -
4804 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4805 switch(c) -
4806 { -
4807 default: gotspace = 0; break;
never executed: break;
0
4808 case 0x09: -
4809 case 0x20: -
4810 case 0xa0: -
4811 case 0x1680: -
4812 case 0x180e: -
4813 case 0x2000: -
4814 case 0x2001: -
4815 case 0x2002: -
4816 case 0x2003: -
4817 case 0x2004: -
4818 case 0x2005: -
4819 case 0x2006: -
4820 case 0x2007: -
4821 case 0x2008: -
4822 case 0x2009: -
4823 case 0x200A: -
4824 case 0x202f: -
4825 case 0x205f: -
4826 case 0x3000: -
4827 gotspace = 1; -
4828 break;
never executed: break;
0
4829 } -
4830 if (gotspace == (ctype == OP_NOT_HSPACE)) break;
never executed: break;
never evaluated: gotspace == (ctype == OP_NOT_HSPACE)
0
4831 eptr += len; -
4832 }
never executed: }
0
4833 break;
never executed: break;
0
4834 -
4835 case OP_NOT_VSPACE: -
4836 case OP_VSPACE: -
4837 for (i = min; i < max; i++)
never evaluated: i < max
0
4838 { -
4839 BOOL gotspace; -
4840 int len = 1; -
4841 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4842 { -
4843 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4844 break;
never executed: break;
0
4845 } -
4846 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4847 switch(c) -
4848 { -
4849 default: gotspace = 0; break;
never executed: break;
0
4850 case 0x0a: -
4851 case 0x0b: -
4852 case 0x0c: -
4853 case 0x0d: -
4854 case 0x85: -
4855 case 0x2028: -
4856 case 0x2029: -
4857 gotspace = 1; -
4858 break;
never executed: break;
0
4859 } -
4860 if (gotspace == (ctype == OP_NOT_VSPACE)) break;
never executed: break;
never evaluated: gotspace == (ctype == OP_NOT_VSPACE)
0
4861 eptr += len; -
4862 }
never executed: }
0
4863 break;
never executed: break;
0
4864 -
4865 case OP_NOT_DIGIT: -
4866 for (i = min; i < max; i++)
never evaluated: i < max
0
4867 { -
4868 int len = 1; -
4869 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4870 { -
4871 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4872 break;
never executed: break;
0
4873 } -
4874 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4875 if (c < 256 && (md->ctypes[c] & 0x04) != 0) break;
never executed: break;
never evaluated: c < 256
never evaluated: (md->ctypes[c] & 0x04) != 0
0
4876 eptr+= len; -
4877 }
never executed: }
0
4878 break;
never executed: break;
0
4879 -
4880 case OP_DIGIT: -
4881 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:26
no
Evaluation Count:0
0-26
4882 { -
4883 int len = 1; -
4884 if (eptr >= md->end_subject)
partially evaluated: eptr >= md->end_subject
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:26
0-26
4885 { -
4886 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4887 break;
never executed: break;
0
4888 } -
4889 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:26
0-26
4890 if (c >= 256 ||(md->ctypes[c] & 0x04) == 0) break;
executed: break;
Execution Count:12
partially evaluated: c >= 256
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:26
evaluated: (md->ctypes[c] & 0x04) == 0
TRUEFALSE
yes
Evaluation Count:12
yes
Evaluation Count:14
0-26
4891 eptr+= len; -
4892 }
executed: }
Execution Count:14
14
4893 break;
executed: break;
Execution Count:12
12
4894 -
4895 case OP_NOT_WHITESPACE: -
4896 for (i = min; i < max; i++)
never evaluated: i < max
0
4897 { -
4898 int len = 1; -
4899 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4900 { -
4901 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4902 break;
never executed: break;
0
4903 } -
4904 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
4905 if (c < 256 && (md->ctypes[c] & 0x01) != 0) break;
never executed: break;
never evaluated: c < 256
never evaluated: (md->ctypes[c] & 0x01) != 0
0
4906 eptr+= len; -
4907 }
never executed: }
0
4908 break;
never executed: break;
0
4909 -
4910 case OP_WHITESPACE: -
4911 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:25
no
Evaluation Count:0
0-25
4912 { -
4913 int len = 1; -
4914 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:24
1-24
4915 { -
4916 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: eptr > md->start_used_ptr
0-1
4917 break;
executed: break;
Execution Count:1
1
4918 } -
4919 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:24
0-24
4920 if (c >= 256 ||(md->ctypes[c] & 0x01) == 0) break;
executed: break;
Execution Count:17
partially evaluated: c >= 256
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:24
evaluated: (md->ctypes[c] & 0x01) == 0
TRUEFALSE
yes
Evaluation Count:17
yes
Evaluation Count:7
0-24
4921 eptr+= len; -
4922 }
executed: }
Execution Count:7
7
4923 break;
executed: break;
Execution Count:18
18
4924 -
4925 case OP_NOT_WORDCHAR: -
4926 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:14
no
Evaluation Count:0
0-14
4927 { -
4928 int len = 1; -
4929 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:12
2-12
4930 { -
4931 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
partially evaluated: md->partial != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never evaluated: eptr > md->start_used_ptr
0-2
4932 break;
executed: break;
Execution Count:2
2
4933 } -
4934 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
4935 if (c < 256 && (md->ctypes[c] & 0x10) != 0) break;
executed: break;
Execution Count:10
partially evaluated: c < 256
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
evaluated: (md->ctypes[c] & 0x10) != 0
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:2
0-12
4936 eptr+= len; -
4937 }
executed: }
Execution Count:2
2
4938 break;
executed: break;
Execution Count:12
12
4939 -
4940 case OP_WORDCHAR: -
4941 for (i = min; i < max; i++)
partially evaluated: i < max
TRUEFALSE
yes
Evaluation Count:137
no
Evaluation Count:0
0-137
4942 { -
4943 int len = 1; -
4944 if (eptr >= md->end_subject)
evaluated: eptr >= md->end_subject
TRUEFALSE
yes
Evaluation Count:19
yes
Evaluation Count:118
19-118
4945 { -
4946 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
executed: return (-12);
Execution Count:2
executed: }
Execution Count:2
evaluated: md->partial > 1
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
evaluated: md->partial != 0
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:15
partially evaluated: eptr > md->start_used_ptr
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-15
4947 break;
executed: break;
Execution Count:17
17
4948 } -
4949 c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };;
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:118
0-118
4950 if (c >= 256 || (md->ctypes[c] & 0x10) == 0) break;
executed: break;
Execution Count:18
partially evaluated: c >= 256
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:118
evaluated: (md->ctypes[c] & 0x10) == 0
TRUEFALSE
yes
Evaluation Count:18
yes
Evaluation Count:100
0-118
4951 eptr+= len; -
4952 }
executed: }
Execution Count:100
100
4953 break;
executed: break;
Execution Count:35
35
4954 -
4955 default: -
4956 return (-14);
never executed: return (-14);
0
4957 } -
4958 -
4959 -
4960 -
4961 -
4962 -
4963 -
4964 -
4965 if (possessive) continue;
executed: continue;
Execution Count:3
evaluated: possessive
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:190
3-190
4966 for(;;) -
4967 { -
4968 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
4969 if (rrc != 0) return rrc;
executed: return rrc;
Execution Count:139
evaluated: rrc != 0
TRUEFALSE
yes
Evaluation Count:139
yes
Evaluation Count:129
129-139
4970 if (eptr-- == pp) break;
executed: break;
Execution Count:51
evaluated: eptr-- == pp
TRUEFALSE
yes
Evaluation Count:51
yes
Evaluation Count:78
51-78
4971 if ((*eptr & 0xfc00) == 0xdc00) eptr--;
never executed: eptr--;
partially evaluated: (*eptr & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:78
0-78
4972 if (ctype == OP_ANYNL && eptr > pp && *eptr == '\n' &&
partially evaluated: ctype == OP_ANYNL
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:78
never evaluated: eptr > pp
never evaluated: *eptr == '\n'
0-78
4973 eptr[-1] == '\r') eptr--;
never executed: eptr--;
never evaluated: eptr[-1] == '\r'
0
4974 }
executed: }
Execution Count:78
78
4975 }
executed: }
Execution Count:51
51
4976 else -
4977 -
4978 -
4979 { -
4980 switch(ctype) -
4981 { -
4982 case OP_ANY: -
4983 for (i = min; i < max; i++)
never evaluated: i < max
0
4984 { -
4985 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
4986 { -
4987 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
4988 break;
never executed: break;
0
4989 } -
4990 if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break;
never executed: break;
never evaluated: (md->nltype != 0)
0
4991 eptr++; -
4992 }
never executed: }
0
4993 break;
never executed: break;
0
4994 -
4995 case OP_ALLANY: -
4996 case OP_ANYBYTE: -
4997 c = max - min; -
4998 if (c > (unsigned int)(md->end_subject - eptr))
never evaluated: c > (unsigned int)(md->end_subject - eptr)
0
4999 { -
5000 eptr = md->end_subject; -
5001 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5002 }
never executed: }
0
5003 else eptr += c;
never executed: eptr += c;
0
5004 break;
never executed: break;
0
5005 -
5006 case OP_ANYNL: -
5007 for (i = min; i < max; i++)
never evaluated: i < max
0
5008 { -
5009 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5010 { -
5011 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5012 break;
never executed: break;
0
5013 } -
5014 c = *eptr; -
5015 if (c == 0x000d)
never evaluated: c == 0x000d
0
5016 { -
5017 if (++eptr >= md->end_subject) break;
never executed: break;
never evaluated: ++eptr >= md->end_subject
0
5018 if (*eptr == 0x000a) eptr++;
never executed: eptr++;
never evaluated: *eptr == 0x000a
0
5019 }
never executed: }
0
5020 else -
5021 { -
5022 if (c != 0x000a && (md->bsr_anycrlf ||
never evaluated: c != 0x000a
never evaluated: md->bsr_anycrlf
0
5023 (c != 0x000b && c != 0x000c && c != 0x0085
never evaluated: c != 0x000b
never evaluated: c != 0x000c
never evaluated: c != 0x0085
0
5024 -
5025 && c != 0x2028 && c != 0x2029
never evaluated: c != 0x2028
never evaluated: c != 0x2029
0
5026 -
5027 ))) break;
never executed: break;
0
5028 eptr++; -
5029 }
never executed: }
0
5030 } -
5031 break;
never executed: break;
0
5032 -
5033 case OP_NOT_HSPACE: -
5034 for (i = min; i < max; i++)
never evaluated: i < max
0
5035 { -
5036 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5037 { -
5038 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5039 break;
never executed: break;
0
5040 } -
5041 c = *eptr; -
5042 if (c == 0x09 || c == 0x20 || c == 0xa0
never evaluated: c == 0x09
never evaluated: c == 0x20
never evaluated: c == 0xa0
0
5043 -
5044 || c == 0x1680 || c == 0x180e || (c >= 0x2000 && c <= 0x200A)
never evaluated: c == 0x1680
never evaluated: c == 0x180e
never evaluated: c >= 0x2000
never evaluated: c <= 0x200A
0
5045 || c == 0x202f || c == 0x205f || c == 0x3000
never evaluated: c == 0x202f
never evaluated: c == 0x205f
never evaluated: c == 0x3000
0
5046 -
5047 ) break;
never executed: break;
0
5048 eptr++; -
5049 }
never executed: }
0
5050 break;
never executed: break;
0
5051 -
5052 case OP_HSPACE: -
5053 for (i = min; i < max; i++)
never evaluated: i < max
0
5054 { -
5055 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5056 { -
5057 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5058 break;
never executed: break;
0
5059 } -
5060 c = *eptr; -
5061 if (c != 0x09 && c != 0x20 && c != 0xa0
never evaluated: c != 0x09
never evaluated: c != 0x20
never evaluated: c != 0xa0
0
5062 -
5063 && c != 0x1680 && c != 0x180e && (c < 0x2000 || c > 0x200A)
never evaluated: c != 0x1680
never evaluated: c != 0x180e
never evaluated: c < 0x2000
never evaluated: c > 0x200A
0
5064 && c != 0x202f && c != 0x205f && c != 0x3000
never evaluated: c != 0x202f
never evaluated: c != 0x205f
never evaluated: c != 0x3000
0
5065 -
5066 ) break;
never executed: break;
0
5067 eptr++; -
5068 }
never executed: }
0
5069 break;
never executed: break;
0
5070 -
5071 case OP_NOT_VSPACE: -
5072 for (i = min; i < max; i++)
never evaluated: i < max
0
5073 { -
5074 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5075 { -
5076 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5077 break;
never executed: break;
0
5078 } -
5079 c = *eptr; -
5080 if (c == 0x0a || c == 0x0b || c == 0x0c || c == 0x0d || c == 0x85
never evaluated: c == 0x0a
never evaluated: c == 0x0b
never evaluated: c == 0x0c
never evaluated: c == 0x0d
never evaluated: c == 0x85
0
5081 -
5082 || c == 0x2028 || c == 0x2029
never evaluated: c == 0x2028
never evaluated: c == 0x2029
0
5083 -
5084 ) break;
never executed: break;
0
5085 eptr++; -
5086 }
never executed: }
0
5087 break;
never executed: break;
0
5088 -
5089 case OP_VSPACE: -
5090 for (i = min; i < max; i++)
never evaluated: i < max
0
5091 { -
5092 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5093 { -
5094 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5095 break;
never executed: break;
0
5096 } -
5097 c = *eptr; -
5098 if (c != 0x0a && c != 0x0b && c != 0x0c && c != 0x0d && c != 0x85
never evaluated: c != 0x0a
never evaluated: c != 0x0b
never evaluated: c != 0x0c
never evaluated: c != 0x0d
never evaluated: c != 0x85
0
5099 -
5100 && c != 0x2028 && c != 0x2029
never evaluated: c != 0x2028
never evaluated: c != 0x2029
0
5101 -
5102 ) break;
never executed: break;
0
5103 eptr++; -
5104 }
never executed: }
0
5105 break;
never executed: break;
0
5106 -
5107 case OP_NOT_DIGIT: -
5108 for (i = min; i < max; i++)
never evaluated: i < max
0
5109 { -
5110 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5111 { -
5112 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5113 break;
never executed: break;
0
5114 } -
5115 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x04) != 0) break;
never executed: break;
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x04) != 0
0
5116 eptr++; -
5117 }
never executed: }
0
5118 break;
never executed: break;
0
5119 -
5120 case OP_DIGIT: -
5121 for (i = min; i < max; i++)
never evaluated: i < max
0
5122 { -
5123 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5124 { -
5125 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5126 break;
never executed: break;
0
5127 } -
5128 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x04) == 0) break;
never executed: break;
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x04) == 0
0
5129 eptr++; -
5130 }
never executed: }
0
5131 break;
never executed: break;
0
5132 -
5133 case OP_NOT_WHITESPACE: -
5134 for (i = min; i < max; i++)
never evaluated: i < max
0
5135 { -
5136 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5137 { -
5138 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5139 break;
never executed: break;
0
5140 } -
5141 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x01) != 0) break;
never executed: break;
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x01) != 0
0
5142 eptr++; -
5143 }
never executed: }
0
5144 break;
never executed: break;
0
5145 -
5146 case OP_WHITESPACE: -
5147 for (i = min; i < max; i++)
never evaluated: i < max
0
5148 { -
5149 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5150 { -
5151 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5152 break;
never executed: break;
0
5153 } -
5154 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x01) == 0) break;
never executed: break;
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x01) == 0
0
5155 eptr++; -
5156 }
never executed: }
0
5157 break;
never executed: break;
0
5158 -
5159 case OP_NOT_WORDCHAR: -
5160 for (i = min; i < max; i++)
never evaluated: i < max
0
5161 { -
5162 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5163 { -
5164 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5165 break;
never executed: break;
0
5166 } -
5167 if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x10) != 0) break;
never executed: break;
never evaluated: ((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x10) != 0
0
5168 eptr++; -
5169 }
never executed: }
0
5170 break;
never executed: break;
0
5171 -
5172 case OP_WORDCHAR: -
5173 for (i = min; i < max; i++)
never evaluated: i < max
0
5174 { -
5175 if (eptr >= md->end_subject)
never evaluated: eptr >= md->end_subject
0
5176 { -
5177 if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); };
never executed: return (-12);
never executed: }
never evaluated: md->partial > 1
never evaluated: md->partial != 0
never evaluated: eptr > md->start_used_ptr
0
5178 break;
never executed: break;
0
5179 } -
5180 if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x10) == 0) break;
never executed: break;
never evaluated: !((*eptr) <= 255u)
never evaluated: (md->ctypes[*eptr] & 0x10) == 0
0
5181 eptr++; -
5182 }
never executed: }
0
5183 break;
never executed: break;
0
5184 -
5185 default: -
5186 return (-14);
never executed: return (-14);
0
5187 } -
5188 -
5189 -
5190 -
5191 -
5192 -
5193 -
5194 -
5195 if (possessive) continue;
never executed: continue;
never evaluated: possessive
0
5196 while (eptr >= pp)
never evaluated: eptr >= pp
0
5197 { -
5198 rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); -
5199 if (rrc != 0) return rrc;
never executed: return rrc;
never evaluated: rrc != 0
0
5200 eptr--; -
5201 if (ctype == OP_ANYNL && eptr > pp && *eptr == '\n' &&
never evaluated: ctype == OP_ANYNL
never evaluated: eptr > pp
never evaluated: *eptr == '\n'
0
5202 eptr[-1] == '\r') eptr--;
never executed: eptr--;
never evaluated: eptr[-1] == '\r'
0
5203 }
never executed: }
0
5204 }
never executed: }
0
5205 -
5206 -
5207 -
5208 return 0;
executed: return 0;
Execution Count:51
51
5209 } -
5210 -
5211 -
5212 -
5213 -
5214 -
5215 default:
code before this statement never executed: default:
0
5216 ; -
5217 return (-5);
never executed: return (-5);
0
5218 } -
5219 -
5220 -
5221 -
5222 -
5223 -
5224 }
executed: }
Execution Count:3536
3536
5225}
never executed: }
0
5226extern int -
5227pcre16_exec(const pcre16 *argument_re, const pcre16_extra *extra_data, -
5228 const unsigned short * subject, int length, int start_offset, int options, int *offsets, -
5229 int offsetcount) -
5230 -
5231{ -
5232int rc, ocount, arg_offset_max; -
5233int newline; -
5234BOOL using_temporary_offsets = 0; -
5235BOOL anchored; -
5236BOOL startline; -
5237BOOL firstline; -
5238BOOL utf; -
5239BOOL has_first_char = 0; -
5240BOOL has_req_char = 0; -
5241pcre_uchar first_char = 0; -
5242pcre_uchar first_char2 = 0; -
5243pcre_uchar req_char = 0; -
5244pcre_uchar req_char2 = 0; -
5245match_data match_block; -
5246match_data *md = &match_block; -
5247const pcre_uint8 *tables; -
5248const pcre_uint8 *start_bits = ((void *)0); -
5249const pcre_uchar * start_match = (const pcre_uchar *)subject + start_offset; -
5250const pcre_uchar * end_subject; -
5251const pcre_uchar * start_partial = ((void *)0); -
5252const pcre_uchar * req_char_ptr = start_match - 1; -
5253 -
5254const pcre_study_data *study; -
5255const real_pcre16 *re = (const real_pcre16 *)argument_re; -
5256 -
5257 -
5258 -
5259 -
5260if (re == ((void *)0) && extra_data == ((void *)0) && subject == ((void *)0) && length == -999 &&
partially evaluated: re == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
never evaluated: extra_data == ((void *)0)
never evaluated: subject == ((void *)0)
never evaluated: length == -999
0-990
5261 start_offset == -999)
never evaluated: start_offset == -999
0
5262 -
5263 -
5264 -
5265 return match(((void *)0), ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 0);
never executed: return match(((void *)0), ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 0);
0
5266 -
5267 -
5268 -
5269 -
5270if ((options & ~(0x00000010|0x00000080|0x00000100|0x00000400|0x10000000| 0x00002000|0x08000000|0x00008000|(0x00100000|0x00200000|0x00400000| 0x00500000)| 0x00800000|0x01000000|0x04000000)) != 0) return (-3);
never executed: return (-3);
partially evaluated: (options & ~(0x00000010|0x00000080|0x00000100|0x00000400|0x10000000| 0x00002000|0x08000000|0x00008000|(0x00100000|0x00200000|0x00400000| 0x00500000)| 0x00800000|0x01000000|0x04000000)) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
0-990
5271if (re == ((void *)0) || subject == ((void *)0) || (offsets == ((void *)0) && offsetcount > 0))
partially evaluated: re == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
partially evaluated: subject == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
partially evaluated: offsets == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
never evaluated: offsetcount > 0
0-990
5272 return (-2);
never executed: return (-2);
0
5273if (offsetcount < 0) return (-15);
never executed: return (-15);
partially evaluated: offsetcount < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
0-990
5274if (start_offset < 0 || start_offset > length) return (-24);
executed: return (-24);
Execution Count:24
partially evaluated: start_offset < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:990
evaluated: start_offset > length
TRUEFALSE
yes
Evaluation Count:24
yes
Evaluation Count:966
0-990
5275 -
5276 -
5277 -
5278 -
5279 -
5280 -
5281if (re->magic_number != 0x50435245UL)
partially evaluated: re->magic_number != 0x50435245UL
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:966
0-966
5282 return re->magic_number == 0x45524350UL? 0
5283 (-29):(-4);
never executed: return re->magic_number == 0x45524350UL? (-29):(-4);
0
5284if ((re->flags & 0x0002) == 0) return (-28);
never executed: return (-28);
partially evaluated: (re->flags & 0x0002) == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:966
0-966
5285 -
5286 -
5287 -
5288 -
5289 -
5290 -
5291 -
5292utf = md->utf = (re->options & 0x00000800) != 0; -
5293md->partial = ((options & 0x08000000) != 0)? 2 :
evaluated: ((options & 0x08000000) != 0)
TRUEFALSE
yes
Evaluation Count:13
yes
Evaluation Count:953
13-953
5294 ((options & 0x00008000) != 0)? 1 : 0; -
5295 -
5296 -
5297 -
5298 -
5299 -
5300if (utf && (options & 0x00002000) == 0)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:966
no
Evaluation Count:0
evaluated: (options & 0x00002000) == 0
TRUEFALSE
yes
Evaluation Count:333
yes
Evaluation Count:633
0-966
5301 { -
5302 int erroroffset; -
5303 int errorcode = _pcre16_valid_utf((const pcre_uchar *)subject, length, &erroroffset); -
5304 if (errorcode != 0)
partially evaluated: errorcode != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:333
0-333
5305 { -
5306 if (offsetcount >= 2)
never evaluated: offsetcount >= 2
0
5307 { -
5308 offsets[0] = erroroffset; -
5309 offsets[1] = errorcode; -
5310 }
never executed: }
0
5311 -
5312 return (errorcode <= 1 && md->partial > 1)? 0
5313 (-25) : (-10);
never executed: return (errorcode <= 1 && md->partial > 1)? (-25) : (-10);
0
5314 -
5315 -
5316 -
5317 -
5318 } -
5319 -
5320 -
5321 if (start_offset > 0 && start_offset < length &&
evaluated: start_offset > 0
TRUEFALSE
yes
Evaluation Count:36
yes
Evaluation Count:297
evaluated: start_offset < length
TRUEFALSE
yes
Evaluation Count:34
yes
Evaluation Count:2
2-297
5322 (((((const pcre_uchar *)subject)[start_offset]) & 0xfc00) == 0xdc00))
partially evaluated: (((((const pcre_uchar *)subject)[start_offset]) & 0xfc00) == 0xdc00)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:34
0-34
5323 return (-11);
never executed: return (-11);
0
5324 }
executed: }
Execution Count:333
333
5325if (extra_data != ((void *)0)
evaluated: extra_data != ((void *)0)
TRUEFALSE
yes
Evaluation Count:204
yes
Evaluation Count:762
204-762
5326 && (extra_data->flags & 0x0040) != 0
partially evaluated: (extra_data->flags & 0x0040) != 0
TRUEFALSE
yes
Evaluation Count:204
no
Evaluation Count:0
0-204
5327 && extra_data->executable_jit != ((void *)0)
partially evaluated: extra_data->executable_jit != ((void *)0)
TRUEFALSE
yes
Evaluation Count:204
no
Evaluation Count:0
0-204
5328 && (extra_data->flags & 0x0008) == 0
partially evaluated: (extra_data->flags & 0x0008) == 0
TRUEFALSE
yes
Evaluation Count:204
no
Evaluation Count:0
0-204
5329 && (options & ~(0x00002000 | 0x00000080 | 0x00000100 | 32-172
5330 0x00000400 | 0x10000000)) == 0)
evaluated: (options & ~(0x00002000 | 0x00000080 | 0x00000100 | 0x00000400 | 0x10000000)) == 0
TRUEFALSE
yes
Evaluation Count:172
yes
Evaluation Count:32
32-172
5331 return _pcre16_jit_exec(re, extra_data->executable_jit, 172
5332 (const pcre_uchar *)subject, length, start_offset, options, 172
5333 ((extra_data->flags & 0x0002) == 0) 172
5334 ? 10000000 : extra_data->match_limit, offsets, offsetcount);
executed: return _pcre16_jit_exec(re, extra_data->executable_jit, (const pcre_uchar *)subject, length, start_offset, options, ((extra_data->flags & 0x0002) == 0) ? 10000000 : extra_data->match_limit, offsets, offsetcount);
Execution Count:172
172
5335 -
5336 -
5337 -
5338 -
5339 -
5340md->name_table = (pcre_uchar *)re + re->name_table_offset; -
5341md->name_count = re->name_count; -
5342md->name_entry_size = re->name_entry_size; -
5343 -
5344 -
5345 -
5346 -
5347study = ((void *)0); -
5348md->match_limit = 10000000; -
5349md->match_limit_recursion = 10000000; -
5350md->callout_data = ((void *)0); -
5351 -
5352 -
5353 -
5354tables = re->tables; -
5355 -
5356if (extra_data != ((void *)0))
evaluated: extra_data != ((void *)0)
TRUEFALSE
yes
Evaluation Count:32
yes
Evaluation Count:762
32-762
5357 { -
5358 register unsigned int flags = extra_data->flags; -
5359 if ((flags & 0x0001) != 0)
partially evaluated: (flags & 0x0001) != 0
TRUEFALSE
yes
Evaluation Count:32
no
Evaluation Count:0
0-32
5360 study = (const pcre_study_data *)extra_data->study_data;
executed: study = (const pcre_study_data *)extra_data->study_data;
Execution Count:32
32
5361 if ((flags & 0x0002) != 0)
partially evaluated: (flags & 0x0002) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
5362 md->match_limit = extra_data->match_limit;
never executed: md->match_limit = extra_data->match_limit;
0
5363 if ((flags & 0x0010) != 0)
partially evaluated: (flags & 0x0010) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
5364 md->match_limit_recursion = extra_data->match_limit_recursion;
never executed: md->match_limit_recursion = extra_data->match_limit_recursion;
0
5365 if ((flags & 0x0004) != 0)
partially evaluated: (flags & 0x0004) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
5366 md->callout_data = extra_data->callout_data;
never executed: md->callout_data = extra_data->callout_data;
0
5367 if ((flags & 0x0008) != 0) tables = extra_data->tables;
never executed: tables = extra_data->tables;
partially evaluated: (flags & 0x0008) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
5368 }
executed: }
Execution Count:32
32
5369 -
5370 -
5371 -
5372 -
5373 -
5374if (tables == ((void *)0)) tables = _pcre16_default_tables;
executed: tables = _pcre16_default_tables;
Execution Count:794
partially evaluated: tables == ((void *)0)
TRUEFALSE
yes
Evaluation Count:794
no
Evaluation Count:0
0-794
5375 -
5376 -
5377 -
5378anchored = ((re->options | options) & 0x00000010) != 0; -
5379startline = (re->flags & 0x0100) != 0; -
5380firstline = (re->options & 0x00040000) != 0; -
5381 -
5382 -
5383 -
5384md->start_code = (const pcre_uchar *)re + re->name_table_offset + -
5385 re->name_count * re->name_entry_size; -
5386 -
5387md->start_subject = (const pcre_uchar *)subject; -
5388md->start_offset = start_offset; -
5389md->end_subject = md->start_subject + length; -
5390end_subject = md->end_subject; -
5391 -
5392md->endonly = (re->options & 0x00000020) != 0; -
5393md->use_ucp = (re->options & 0x20000000) != 0; -
5394md->jscript_compat = (re->options & 0x02000000) != 0; -
5395md->ignore_skip_arg = 0; -
5396 -
5397 -
5398 -
5399 -
5400md->notbol = (options & 0x00000080) != 0; -
5401md->noteol = (options & 0x00000100) != 0; -
5402md->notempty = (options & 0x00000400) != 0; -
5403md->notempty_atstart = (options & 0x10000000) != 0; -
5404 -
5405md->hitend = 0; -
5406md->mark = md->nomatch_mark = ((void *)0); -
5407 -
5408md->recursive = ((void *)0); -
5409md->hasthen = (re->flags & 0x1000) != 0; -
5410 -
5411md->lcc = tables + 0; -
5412md->fcc = tables + 256; -
5413md->ctypes = tables + (512 + 320); -
5414 -
5415 -
5416 -
5417switch (options & (0x00800000|0x01000000)) -
5418 { -
5419 case 0: -
5420 if ((re->options & (0x00800000|0x01000000)) != 0)
partially evaluated: (re->options & (0x00800000|0x01000000)) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:794
0-794
5421 md->bsr_anycrlf = (re->options & 0x00800000) != 0;
never executed: md->bsr_anycrlf = (re->options & 0x00800000) != 0;
0
5422 else -
5423 -
5424 -
5425 -
5426 md->bsr_anycrlf = 0;
executed: md->bsr_anycrlf = 0;
Execution Count:794
794
5427 -
5428 break;
executed: break;
Execution Count:794
794
5429 -
5430 case 0x00800000: -
5431 md->bsr_anycrlf = 1; -
5432 break;
never executed: break;
0
5433 -
5434 case 0x01000000: -
5435 md->bsr_anycrlf = 0; -
5436 break;
never executed: break;
0
5437 -
5438 default: return (-23);
never executed: return (-23);
0
5439 } -
5440 -
5441 -
5442 -
5443 -
5444switch ((((options & (0x00100000|0x00200000|0x00400000| 0x00500000)) == 0)? re->options : -
5445 (pcre_uint32)options) & (0x00100000|0x00200000|0x00400000| 0x00500000)) -
5446 { -
5447 case 0: newline = 10; break;
executed: break;
Execution Count:748
748
5448 case 0x00100000: newline = '\015'; break;
never executed: break;
0
5449 case 0x00200000: newline = '\012'; break;
never executed: break;
0
5450 case 0x00100000 + -
5451 0x00200000: newline = ('\015' << 8) | '\012'; break;
executed: break;
Execution Count:30
30
5452 case 0x00400000: newline = -1; break;
never executed: break;
0
5453 case 0x00500000: newline = -2; break;
executed: break;
Execution Count:16
16
5454 default: return (-23);
never executed: return (-23);
0
5455 } -
5456 -
5457if (newline == -2)
evaluated: newline == -2
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:778
16-778
5458 { -
5459 md->nltype = 2; -
5460 }
executed: }
Execution Count:16
16
5461else if (newline < 0)
partially evaluated: newline < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:778
0-778
5462 { -
5463 md->nltype = 1; -
5464 }
never executed: }
0
5465else -
5466 { -
5467 md->nltype = 0; -
5468 if (newline > 255)
evaluated: newline > 255
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:748
30-748
5469 { -
5470 md->nllen = 2; -
5471 md->nl[0] = (newline >> 8) & 255; -
5472 md->nl[1] = newline & 255; -
5473 }
executed: }
Execution Count:30
30
5474 else -
5475 { -
5476 md->nllen = 1; -
5477 md->nl[0] = newline; -
5478 }
executed: }
Execution Count:748
748
5479 } -
5480 -
5481 -
5482 -
5483 -
5484 -
5485if (md->partial && (re->flags & 0x0200) != 0)
evaluated: md->partial
TRUEFALSE
yes
Evaluation Count:23
yes
Evaluation Count:771
partially evaluated: (re->flags & 0x0200) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:23
0-771
5486 return (-13);
never executed: return (-13);
0
5487 -
5488 -
5489 -
5490 -
5491 -
5492 -
5493ocount = offsetcount - (offsetcount % 3); -
5494arg_offset_max = (2*ocount)/3; -
5495 -
5496if (re->top_backref > 0 && re->top_backref >= ocount/3)
partially evaluated: re->top_backref > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:794
never evaluated: re->top_backref >= ocount/3
0-794
5497 { -
5498 ocount = re->top_backref * 3 + 3; -
5499 md->offset_vector = (int *)(pcre16_malloc)(ocount * sizeof(int)); -
5500 if (md->offset_vector == ((void *)0)) return (-6);
never executed: return (-6);
never evaluated: md->offset_vector == ((void *)0)
0
5501 using_temporary_offsets = 1; -
5502 ; -
5503 }
never executed: }
0
5504else md->offset_vector = offsets;
executed: md->offset_vector = offsets;
Execution Count:794
794
5505 -
5506md->offset_end = ocount; -
5507md->offset_max = (2*ocount)/3; -
5508md->offset_overflow = 0; -
5509md->capture_last = -1; -
5510 -
5511 -
5512 -
5513 -
5514 -
5515 -
5516 -
5517if (md->offset_vector != ((void *)0))
partially evaluated: md->offset_vector != ((void *)0)
TRUEFALSE
yes
Evaluation Count:794
no
Evaluation Count:0
0-794
5518 { -
5519 register int *iptr = md->offset_vector + ocount; -
5520 register int *iend = iptr - re->top_bracket; -
5521 if (iend < md->offset_vector + 2) iend = md->offset_vector + 2;
never executed: iend = md->offset_vector + 2;
partially evaluated: iend < md->offset_vector + 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:794
0-794
5522 while (--iptr >= iend) *iptr = -1;
executed: *iptr = -1;
Execution Count:223
evaluated: --iptr >= iend
TRUEFALSE
yes
Evaluation Count:223
yes
Evaluation Count:794
223-794
5523 md->offset_vector[0] = md->offset_vector[1] = -1; -
5524 }
executed: }
Execution Count:794
794
5525 -
5526 -
5527 -
5528 -
5529 -
5530 -
5531 -
5532if (!anchored)
evaluated: !anchored
TRUEFALSE
yes
Evaluation Count:613
yes
Evaluation Count:181
181-613
5533 { -
5534 if ((re->flags & 0x0010) != 0)
evaluated: (re->flags & 0x0010) != 0
TRUEFALSE
yes
Evaluation Count:379
yes
Evaluation Count:234
234-379
5535 { -
5536 has_first_char = 1; -
5537 first_char = first_char2 = (pcre_uchar)(re->first_char); -
5538 if ((re->flags & 0x0020) != 0)
evaluated: (re->flags & 0x0020) != 0
TRUEFALSE
yes
Evaluation Count:52
yes
Evaluation Count:327
52-327
5539 { -
5540 first_char2 = (((first_char) <= 255u)? ((md->fcc)[first_char]):(first_char));
evaluated: ((first_char) <= 255u)
TRUEFALSE
yes
Evaluation Count:51
yes
Evaluation Count:1
1-51
5541 -
5542 if (utf && first_char > 127)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:52
no
Evaluation Count:0
evaluated: first_char > 127
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:51
0-52
5543 first_char2 = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case);
executed: first_char2 = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case);
Execution Count:1
1
5544 -
5545 }
executed: }
Execution Count:52
52
5546 }
executed: }
Execution Count:379
379
5547 else -
5548 if (!startline && study != ((void *)0) &&
evaluated: !startline
TRUEFALSE
yes
Evaluation Count:187
yes
Evaluation Count:47
partially evaluated: study != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:187
0-187
5549 (study->flags & 0x0001) != 0)
never evaluated: (study->flags & 0x0001) != 0
0
5550 start_bits = study->start_bits;
never executed: start_bits = study->start_bits;
0
5551 } -
5552 -
5553 -
5554 -
5555 -
5556if ((re->flags & 0x0040) != 0)
evaluated: (re->flags & 0x0040) != 0
TRUEFALSE
yes
Evaluation Count:159
yes
Evaluation Count:635
159-635
5557 { -
5558 has_req_char = 1; -
5559 req_char = req_char2 = (pcre_uchar)(re->req_char); -
5560 if ((re->flags & 0x0080) != 0)
evaluated: (re->flags & 0x0080) != 0
TRUEFALSE
yes
Evaluation Count:33
yes
Evaluation Count:126
33-126
5561 { -
5562 req_char2 = (((req_char) <= 255u)? ((md->fcc)[req_char]):(req_char));
evaluated: ((req_char) <= 255u)
TRUEFALSE
yes
Evaluation Count:32
yes
Evaluation Count:1
1-32
5563 -
5564 if (utf && req_char > 127)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:33
no
Evaluation Count:0
evaluated: req_char > 127
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:31
0-33
5565 req_char2 = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case);
executed: req_char2 = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case);
Execution Count:2
2
5566 -
5567 }
executed: }
Execution Count:33
33
5568 }
executed: }
Execution Count:159
159
5569 -
5570 -
5571 -
5572 -
5573 -
5574 -
5575 -
5576for(;;) -
5577 { -
5578 const pcre_uchar * save_end_subject = end_subject; -
5579 const pcre_uchar * new_start_match; -
5580 -
5581 -
5582 -
5583 -
5584 -
5585 -
5586 -
5587 if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1084
0-1084
5588 { -
5589 const pcre_uchar * t = start_match; -
5590 -
5591 if (utf)
never evaluated: utf
0
5592 { -
5593 while (t < md->end_subject && !((md->nltype != 0)? ((t) < md->end_subject && _pcre16_is_newline((t), md->nltype, md->end_subject, &(md->nllen), utf)) : ((t) <= md->end_subject - md->nllen && (t)[0] == md->nl[0] && (md->nllen == 1 || (t)[1] == md->nl[1]) ) ))
never evaluated: t < md->end_subject
never evaluated: (md->nltype != 0)
0
5594 { -
5595 t++; -
5596 if ((t < end_subject) && ((*t) & 0xfc00) == 0xdc00) t++;
never executed: t++;
never evaluated: (t < end_subject)
never evaluated: ((*t) & 0xfc00) == 0xdc00
0
5597 }
never executed: }
0
5598 }
never executed: }
0
5599 else -
5600 -
5601 while (t < md->end_subject && !((md->nltype != 0)? ((t) < md->end_subject && _pcre16_is_newline((t), md->nltype, md->end_subject, &(md->nllen), utf)) : ((t) <= md->end_subject - md->nllen && (t)[0] == md->nl[0] && (md->nllen == 1 || (t)[1] == md->nl[1]) ) )) t++;
never executed: t++;
never evaluated: t < md->end_subject
never evaluated: (md->nltype != 0)
0
5602 end_subject = t; -
5603 }
never executed: }
0
5604 -
5605 -
5606 -
5607 -
5608 -
5609 -
5610 -
5611 if (((options | re->options) & 0x04000000) == 0)
partially evaluated: ((options | re->options) & 0x04000000) == 0
TRUEFALSE
yes
Evaluation Count:1084
no
Evaluation Count:0
0-1084
5612 { -
5613 -
5614 -
5615 if (has_first_char)
evaluated: has_first_char
TRUEFALSE
yes
Evaluation Count:397
yes
Evaluation Count:687
397-687
5616 { -
5617 if (first_char != first_char2)
evaluated: first_char != first_char2
TRUEFALSE
yes
Evaluation Count:52
yes
Evaluation Count:345
52-345
5618 while (start_match < end_subject &&
evaluated: start_match < end_subject
TRUEFALSE
yes
Evaluation Count:96
yes
Evaluation Count:13
13-96
5619 *start_match != first_char && *start_match != first_char2)
evaluated: *start_match != first_char
TRUEFALSE
yes
Evaluation Count:81
yes
Evaluation Count:15
evaluated: *start_match != first_char2
TRUEFALSE
yes
Evaluation Count:57
yes
Evaluation Count:24
15-81
5620 start_match++;
executed: start_match++;
Execution Count:57
57
5621 else -
5622 while (start_match < end_subject && *start_match != first_char)
evaluated: start_match < end_subject
TRUEFALSE
yes
Evaluation Count:2419
yes
Evaluation Count:104
evaluated: *start_match != first_char
TRUEFALSE
yes
Evaluation Count:2178
yes
Evaluation Count:241
104-2419
5623 start_match++;
executed: start_match++;
Execution Count:2178
2178
5624 } -
5625 -
5626 -
5627 -
5628 else if (startline)
evaluated: startline
TRUEFALSE
yes
Evaluation Count:85
yes
Evaluation Count:602
85-602
5629 { -
5630 if (start_match > md->start_subject + start_offset)
evaluated: start_match > md->start_subject + start_offset
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:83
2-83
5631 { -
5632 -
5633 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
5634 { -
5635 while (start_match < end_subject && !((md->nltype != 0)? ((start_match) > md->start_subject && _pcre16_was_newline((start_match), md->nltype, md->start_subject, &(md->nllen), utf)) : ((start_match) >= md->start_subject + md->nllen && (start_match)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (start_match)[-md->nllen+1] == md->nl[1]) ) ))
partially evaluated: start_match < end_subject
TRUEFALSE
yes
Evaluation Count:17
no
Evaluation Count:0
partially evaluated: (md->nltype != 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:17
0-17
5636 { -
5637 start_match++; -
5638 if ((start_match < end_subject) && ((*start_match) & 0xfc00) == 0xdc00) start_match++;
never executed: start_match++;
partially evaluated: (start_match < end_subject)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: ((*start_match) & 0xfc00) == 0xdc00
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5639 -
5640 }
executed: }
Execution Count:15
15
5641 }
executed: }
Execution Count:2
2
5642 else -
5643 -
5644 while (start_match < end_subject && !((md->nltype != 0)? ((start_match) > md->start_subject && _pcre16_was_newline((start_match), md->nltype, md->start_subject, &(md->nllen), utf)) : ((start_match) >= md->start_subject + md->nllen && (start_match)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (start_match)[-md->nllen+1] == md->nl[1]) ) ))
never evaluated: start_match < end_subject
never evaluated: (md->nltype != 0)
0
5645 start_match++;
never executed: start_match++;
0
5646 -
5647 -
5648 -
5649 -
5650 -
5651 if (start_match[-1] == '\015' &&
partially evaluated: start_match[-1] == '\015'
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
5652 (md->nltype == 1 || md->nltype == 2) &&
never evaluated: md->nltype == 1
never evaluated: md->nltype == 2
0
5653 start_match < end_subject &&
never evaluated: start_match < end_subject
0
5654 *start_match == '\012')
never evaluated: *start_match == '\012'
0
5655 start_match++;
never executed: start_match++;
0
5656 }
executed: }
Execution Count:2
2
5657 }
executed: }
Execution Count:85
85
5658 -
5659 -
5660 -
5661 else if (start_bits != ((void *)0))
partially evaluated: start_bits != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:602
0-602
5662 { -
5663 while (start_match < end_subject)
never evaluated: start_match < end_subject
0
5664 { -
5665 register unsigned int c = *start_match; -
5666 -
5667 if (c > 255) c = 255;
never executed: c = 255;
never evaluated: c > 255
0
5668 -
5669 if ((start_bits[c/8] & (1 << (c&7))) == 0)
never evaluated: (start_bits[c/8] & (1 << (c&7))) == 0
0
5670 { -
5671 start_match++; -
5672 -
5673 -
5674 -
5675 -
5676 -
5677 -
5678 -
5679 }
never executed: }
0
5680 else break;
never executed: break;
0
5681 } -
5682 }
never executed: }
0
5683 } -
5684 -
5685 -
5686 -
5687 end_subject = save_end_subject; -
5688 -
5689 -
5690 -
5691 -
5692 if (((options | re->options) & 0x04000000) == 0 && !md->partial)
partially evaluated: ((options | re->options) & 0x04000000) == 0
TRUEFALSE
yes
Evaluation Count:1084
no
Evaluation Count:0
evaluated: !md->partial
TRUEFALSE
yes
Evaluation Count:1020
yes
Evaluation Count:64
0-1084
5693 { -
5694 -
5695 -
5696 -
5697 -
5698 -
5699 if (study != ((void *)0) && (study->flags & 0x0002) != 0 &&
evaluated: study != ((void *)0)
TRUEFALSE
yes
Evaluation Count:32
yes
Evaluation Count:988
partially evaluated: (study->flags & 0x0002) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-988
5700 (pcre_uint32)(end_subject - start_match) < study->minlength)
never evaluated: (pcre_uint32)(end_subject - start_match) < study->minlength
0
5701 { -
5702 rc = 0; -
5703 break;
never executed: break;
0
5704 } -
5705 if (has_req_char && end_subject - start_match < 1000)
evaluated: has_req_char
TRUEFALSE
yes
Evaluation Count:154
yes
Evaluation Count:866
partially evaluated: end_subject - start_match < 1000
TRUEFALSE
yes
Evaluation Count:154
no
Evaluation Count:0
0-866
5706 { -
5707 register const pcre_uchar * p = start_match + (has_first_char? 1:0);
evaluated: has_first_char
TRUEFALSE
yes
Evaluation Count:91
yes
Evaluation Count:63
63-91
5708 -
5709 -
5710 -
5711 -
5712 if (p > req_char_ptr)
evaluated: p > req_char_ptr
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:2
2-152
5713 { -
5714 if (req_char != req_char2)
evaluated: req_char != req_char2
TRUEFALSE
yes
Evaluation Count:33
yes
Evaluation Count:119
33-119
5715 { -
5716 while (p < end_subject)
evaluated: p < end_subject
TRUEFALSE
yes
Evaluation Count:543
yes
Evaluation Count:8
8-543
5717 { -
5718 register int pp = *p++; -
5719 if (pp == req_char || pp == req_char2) { p--; break; }
executed: break;
Execution Count:25
evaluated: pp == req_char
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:534
evaluated: pp == req_char2
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:518
9-534
5720 }
executed: }
Execution Count:518
518
5721 }
executed: }
Execution Count:33
33
5722 else -
5723 { -
5724 while (p < end_subject)
evaluated: p < end_subject
TRUEFALSE
yes
Evaluation Count:2300
yes
Evaluation Count:51
51-2300
5725 { -
5726 if (*p++ == req_char) { p--; break; }
executed: break;
Execution Count:68
evaluated: *p++ == req_char
TRUEFALSE
yes
Evaluation Count:68
yes
Evaluation Count:2232
68-2232
5727 }
executed: }
Execution Count:2232
2232
5728 }
executed: }
Execution Count:119
119
5729 -
5730 -
5731 -
5732 -
5733 if (p >= end_subject)
evaluated: p >= end_subject
TRUEFALSE
yes
Evaluation Count:59
yes
Evaluation Count:93
59-93
5734 { -
5735 rc = 0; -
5736 break;
executed: break;
Execution Count:59
59
5737 } -
5738 -
5739 -
5740 -
5741 -
5742 -
5743 req_char_ptr = p; -
5744 }
executed: }
Execution Count:93
93
5745 }
executed: }
Execution Count:95
95
5746 }
executed: }
Execution Count:961
961
5747 md->start_match_ptr = start_match; -
5748 md->start_used_ptr = start_match; -
5749 md->match_call_count = 0; -
5750 md->match_function_type = 0; -
5751 md->end_offset_top = 0; -
5752 rc = match(start_match, md->start_code, start_match, 2, md, ((void *)0), 0); -
5753 if (md->hitend && start_partial == ((void *)0)) start_partial = md->start_used_ptr;
executed: start_partial = md->start_used_ptr;
Execution Count:19
evaluated: md->hitend
TRUEFALSE
yes
Evaluation Count:34
yes
Evaluation Count:991
evaluated: start_partial == ((void *)0)
TRUEFALSE
yes
Evaluation Count:19
yes
Evaluation Count:15
15-991
5754 -
5755 switch(rc) -
5756 { -
5757 -
5758 -
5759 -
5760 -
5761 -
5762 -
5763 -
5764 case (-993): -
5765 new_start_match = start_match; -
5766 md->ignore_skip_arg = 1; -
5767 break;
never executed: break;
0
5768 -
5769 -
5770 -
5771 -
5772 case (-994): -
5773 if (md->start_match_ptr != start_match)
never evaluated: md->start_match_ptr != start_match
0
5774 { -
5775 new_start_match = md->start_match_ptr; -
5776 break;
never executed: break;
0
5777 } -
5778 -
5779 -
5780 -
5781 -
5782 -
5783 case 0:
code before this statement never executed: case 0:
0
5784 case (-995): -
5785 case (-992): -
5786 md->ignore_skip_arg = 0; -
5787 new_start_match = start_match + 1; -
5788 -
5789 if (utf)
partially evaluated: utf
TRUEFALSE
yes
Evaluation Count:530
no
Evaluation Count:0
0-530
5790 if ((new_start_match < end_subject) && ((*new_start_match) & 0xfc00) == 0xdc00) new_start_match++;
executed: new_start_match++;
Execution Count:6
evaluated: (new_start_match < end_subject)
TRUEFALSE
yes
Evaluation Count:358
yes
Evaluation Count:172
evaluated: ((*new_start_match) & 0xfc00) == 0xdc00
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:352
6-358
5791 -
5792 -
5793 break;
executed: break;
Execution Count:530
530
5794 -
5795 -
5796 -
5797 case (-998): -
5798 rc = 0; -
5799 goto ENDLOOP;
never executed: goto ENDLOOP;
0
5800 -
5801 -
5802 -
5803 default: -
5804 goto ENDLOOP;
executed: goto ENDLOOP;
Execution Count:495
495
5805 } -
5806 -
5807 -
5808 -
5809 -
5810 rc = 0; -
5811 -
5812 -
5813 -
5814 -
5815 -
5816 if (firstline && ((md->nltype != 0)? ((start_match) < md->end_subject && _pcre16_is_newline((start_match), md->nltype, md->end_subject, &(md->nllen), utf)) : ((start_match) <= md->end_subject - md->nllen && (start_match)[0] == md->nl[0] && (md->nllen == 1 || (start_match)[1] == md->nl[1]) ) )) break;
never executed: break;
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:530
never evaluated: (md->nltype != 0)
0-530
5817 -
5818 -
5819 -
5820 start_match = new_start_match; -
5821 -
5822 -
5823 -
5824 -
5825 if (anchored || start_match > end_subject) break;
executed: break;
Execution Count:240
evaluated: anchored
TRUEFALSE
yes
Evaluation Count:122
yes
Evaluation Count:408
evaluated: start_match > end_subject
TRUEFALSE
yes
Evaluation Count:118
yes
Evaluation Count:290
118-408
5826 if (start_match > (const pcre_uchar *)subject + start_offset &&
partially evaluated: start_match > (const pcre_uchar *)subject + start_offset
TRUEFALSE
yes
Evaluation Count:290
no
Evaluation Count:0
0-290
5827 start_match[-1] == '\015' &&
partially evaluated: start_match[-1] == '\015'
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:290
0-290
5828 start_match < end_subject &&
never evaluated: start_match < end_subject
0
5829 *start_match == '\012' &&
never evaluated: *start_match == '\012'
0
5830 (re->flags & 0x0800) == 0 &&
never evaluated: (re->flags & 0x0800) == 0
0
5831 (md->nltype == 1 ||
never evaluated: md->nltype == 1
0
5832 md->nltype == 2 ||
never evaluated: md->nltype == 2
0
5833 md->nllen == 2))
never evaluated: md->nllen == 2
0
5834 start_match++;
never executed: start_match++;
0
5835 -
5836 md->mark = ((void *)0); -
5837 }
executed: }
Execution Count:290
290
5838ENDLOOP:
code before this statement executed: ENDLOOP:
Execution Count:299
299
5839 -
5840if (rc == 1 || rc == (-999))
evaluated: rc == 1
TRUEFALSE
yes
Evaluation Count:480
yes
Evaluation Count:314
partially evaluated: rc == (-999)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:314
0-480
5841 { -
5842 if (using_temporary_offsets)
partially evaluated: using_temporary_offsets
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:480
0-480
5843 { -
5844 if (arg_offset_max >= 4)
never evaluated: arg_offset_max >= 4
0
5845 { -
5846 memcpy(offsets + 2, md->offset_vector + 2, -
5847 (arg_offset_max - 2) * sizeof(int)); -
5848 ; -
5849 }
never executed: }
0
5850 if (md->end_offset_top > arg_offset_max) md->offset_overflow = 1;
never executed: md->offset_overflow = 1;
never evaluated: md->end_offset_top > arg_offset_max
0
5851 ; -
5852 (pcre16_free)(md->offset_vector); -
5853 }
never executed: }
0
5854 -
5855 -
5856 -
5857 -
5858 rc = (md->offset_overflow && md->end_offset_top >= arg_offset_max)?
partially evaluated: md->offset_overflow
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:480
never evaluated: md->end_offset_top >= arg_offset_max
0-480
5859 0 : md->end_offset_top/2; -
5860 if (md->end_offset_top/2 <= re->top_bracket && offsets != ((void *)0))
partially evaluated: md->end_offset_top/2 <= re->top_bracket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:480
never evaluated: offsets != ((void *)0)
0-480
5861 { -
5862 register int *iptr, *iend; -
5863 int resetcount = 2 + re->top_bracket * 2; -
5864 if (resetcount > offsetcount) resetcount = ocount;
never executed: resetcount = ocount;
never evaluated: resetcount > offsetcount
0
5865 iptr = offsets + md->end_offset_top; -
5866 iend = offsets + resetcount; -
5867 while (iptr < iend) *iptr++ = -1;
never executed: *iptr++ = -1;
never evaluated: iptr < iend
0
5868 }
never executed: }
0
5869 -
5870 -
5871 -
5872 -
5873 -
5874 if (offsetcount < 2) rc = 0; else
never executed: rc = 0;
partially evaluated: offsetcount < 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:480
0-480
5875 { -
5876 offsets[0] = (int)(md->start_match_ptr - md->start_subject); -
5877 offsets[1] = (int)(md->end_match_ptr - md->start_subject); -
5878 }
executed: }
Execution Count:480
480
5879 -
5880 -
5881 -
5882 if (extra_data != ((void *)0) && (extra_data->flags & 0x0020) != 0)
evaluated: extra_data != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:479
partially evaluated: (extra_data->flags & 0x0020) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-479
5883 *(extra_data->mark) = (pcre_uchar *)md->mark;
never executed: *(extra_data->mark) = (pcre_uchar *)md->mark;
0
5884 ; -
5885 return rc;
executed: return rc;
Execution Count:480
480
5886 } -
5887 -
5888 -
5889 -
5890 -
5891if (using_temporary_offsets)
partially evaluated: using_temporary_offsets
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:314
0-314
5892 { -
5893 ; -
5894 (pcre16_free)(md->offset_vector); -
5895 }
never executed: }
0
5896 -
5897 -
5898 -
5899if (rc != 0 && rc != (-12))
evaluated: rc != 0
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:299
evaluated: rc != (-12)
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:11
4-299
5900 { -
5901 ; -
5902 return rc;
executed: return rc;
Execution Count:4
4
5903 } -
5904 -
5905 -
5906 -
5907if (start_partial != ((void *)0))
evaluated: start_partial != ((void *)0)
TRUEFALSE
yes
Evaluation Count:17
yes
Evaluation Count:293
17-293
5908 { -
5909 ; -
5910 md->mark = ((void *)0); -
5911 if (offsetcount > 1)
partially evaluated: offsetcount > 1
TRUEFALSE
yes
Evaluation Count:17
no
Evaluation Count:0
0-17
5912 { -
5913 offsets[0] = (int)(start_partial - (const pcre_uchar *)subject); -
5914 offsets[1] = (int)(end_subject - (const pcre_uchar *)subject); -
5915 }
executed: }
Execution Count:17
17
5916 rc = (-12); -
5917 }
executed: }
Execution Count:17
17
5918 -
5919 -
5920 -
5921else -
5922 { -
5923 ; -
5924 rc = (-1); -
5925 }
executed: }
Execution Count:293
293
5926 -
5927 -
5928 -
5929if (extra_data != ((void *)0) && (extra_data->flags & 0x0020) != 0)
evaluated: extra_data != ((void *)0)
TRUEFALSE
yes
Evaluation Count:31
yes
Evaluation Count:279
partially evaluated: (extra_data->flags & 0x0020) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:31
0-279
5930 *(extra_data->mark) = (pcre_uchar *)md->nomatch_mark;
never executed: *(extra_data->mark) = (pcre_uchar *)md->nomatch_mark;
0
5931return rc;
executed: return rc;
Execution Count:310
310
5932} -
5933 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial