Branch Coverage

lib/List/Keywords.xs
Criterion Covered Total %
branch 174 256 67.9


line true false branch
75 72 0 OP *blockstart = LINKLIST(block);
83 72 0 if(startop->op_type != OP_LIST)
101 72 0 OP *whilestart = LINKLIST(startop);
136 9 200029 if(PL_stack_base + TOPMARK == SP) {
140 0 9 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
5 4 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
1 4 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
147 0 200029 PUSHMARK(PL_stack_sp); /* current src item */
153 17 200012 if(SvPADTMP(src)) {
159 6 200023 if(targ) {
182 35 10200132 SV *targsv = targ ? PAD_SVl(targ) : DEFSV;
10200132 0 SV *targsv = targ ? PAD_SVl(targ) : DEFSV;
184 0 10200167 bool ret = SvTRUE_NN(sv);
0 10200167 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
10200163 4 bool ret = SvTRUE_NN(sv);
10200163 0 bool ret = SvTRUE_NN(sv);
10200163 0 bool ret = SvTRUE_NN(sv);
200059 10000104 bool ret = SvTRUE_NN(sv);
0 200059 bool ret = SvTRUE_NN(sv);
4 0 bool ret = SvTRUE_NN(sv);
4 0 bool ret = SvTRUE_NN(sv);
0 4 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
188 53 10200114 if((mode & FIRST_STOP_ON_FALSE) ? !ret : ret) {
200020 10000147 if((mode & FIRST_STOP_ON_FALSE) ? !ret : ret) {
197 200016 4 SV *ret = (mode & FIRST_RET_NO ) ? &PL_sv_no :
198 200010 6 (mode & FIRST_RET_YES) ? &PL_sv_yes :
200 5 200015 if(targ)
210 9 10000138 if(UNLIKELY(PL_stack_base + *PL_markstack_ptr > SP)) {
215 6 3 PUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
1 5 PUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
223 132 10000006 if(SvPADTMP(src)) {
229 29 10000109 if(targ) {
248 7 38 if(has_optvar) {
255 45 0 *out = build_blocklist(aTHX_ varix, block, list,
312 2 7 if(PL_stack_base + TOPMARK == SP) {
315 2 0 if(GIMME_V == G_SCALAR)
1 1 if(GIMME_V == G_SCALAR)
316 0 1 XPUSHs(&PL_sv_undef);
320 2 5 if(PL_stack_base + TOPMARK + 1 == SP) {
328 3 2 if(mode == REDUCE_REDUCTIONS)
329 0 3 PUSHMARK(PL_stack_sp);
330 0 5 PUSHMARK(PL_stack_sp);
345 3 2 if(mode == REDUCE_REDUCTIONS)
348 5 0 if(SvPADTMP(sv)) {
360 5 0 if(SvPADTMP(sv)) {
379 11 7 if(mode == REDUCE_REDUCTIONS)
380 6 5 PL_stack_base[PL_markstack_ptr[-1]++] = SvPADTMP(sv) ? sv_mortalcopy(sv) : sv;
384 5 13 if(UNLIKELY(PL_stack_base + *PL_markstack_ptr > SP)) {
385 0 5 U8 gimme = GIMME_V;
388 3 2 if(mode == REDUCE_REDUCTIONS) {
393 1 2 if(gimme == G_SCALAR) {
397 2 0 else if(gimme == G_ARRAY)
417 13 0 if(SvPADTMP(sv)) {
439 10 0 *out = build_blocklist(aTHX_ 0, args[0]->op, args[1]->op,
479 2 5 if(PL_stack_base + TOPMARK == SP) {
482 2 0 if(GIMME_V == G_SCALAR)
1 1 if(GIMME_V == G_SCALAR)
483 0 1 XPUSHzero;
488 0 5 PUSHMARK(PL_stack_sp);
489 0 5 PUSHMARK(PL_stack_sp);
493 8 5 for(U8 targi = 0; targi < targcount; targi++) {
495 8 0 SV *sv = svp <= SP ? *svp : &PL_sv_undef;
496 0 8 if(SvPADTMP(sv)) {
522 0 12 if(SvTRUE_NN(sv)) {
0 12 if(SvTRUE_NN(sv)) {
0 0 if(SvTRUE_NN(sv)) {
0 0 if(SvTRUE_NN(sv)) {
9 3 if(SvTRUE_NN(sv)) {
9 0 if(SvTRUE_NN(sv)) {
9 0 if(SvTRUE_NN(sv)) {
5 4 if(SvTRUE_NN(sv)) {
0 5 if(SvTRUE_NN(sv)) {
3 0 if(SvTRUE_NN(sv)) {
3 0 if(SvTRUE_NN(sv)) {
0 3 if(SvTRUE_NN(sv)) {
0 0 if(SvTRUE_NN(sv)) {
0 0 if(SvTRUE_NN(sv)) {
8 4 if(SvTRUE_NN(sv)) {
527 14 7 for(U8 targi = 0; targi < targcount; targi++) {
528 13 1 if(chunksvs + targi > SP)
535 7 5 if(UNLIKELY(PL_stack_base + VALMARK > SP)) {
536 0 5 U8 gimme = GIMME_V;
545 1 4 if(gimme == G_SCALAR) {
549 4 0 else if(gimme == G_LIST)
557 12 7 for(U8 targi = 0; targi < targcount; targi++) {
559 11 1 SV *sv = svp <= SP ? *svp : &PL_sv_undef;
560 0 12 if(SvPADTMP(sv)) {
591 2 6 if(PL_stack_base + TOPMARK == SP) {
594 2 0 if(GIMME_V == G_SCALAR)
1 1 if(GIMME_V == G_SCALAR)
595 0 1 XPUSHzero;
600 0 6 PUSHMARK(PL_stack_sp);
601 0 6 PUSHMARK(PL_stack_sp);
609 11 6 for(U8 targi = 0; targi < targcount; targi++) {
611 11 0 SV *sv = svp <= SP ? *svp : &PL_sv_undef;
612 0 11 if(SvPADTMP(sv)) {
627 0 6 PUSHMARK(PL_stack_sp);
644 0 12 U8 gimme = GIMME_V;
650 12 0 if(items && gimme != G_VOID) {
651 1 11 if(items > (VALMARK - RETMARK)) {
656 1 0 if(shift < count)
660 1 0 EXTEND(SP, shift);
0 1 EXTEND(SP, shift);
667 6 1 while(count--)
673 3 9 if(gimme == G_LIST) {
674 0 9 EXTEND_MORTAL(items);
676 0 9 Move(PL_tmps_stack + tmpsbase, PL_tmps_stack + tmpsbase + items, PL_tmps_ix - PL_tmps_floor, SV *);
680 16 9 while(i-- > 0) {
682 10 6 if(!SvTEMP(sv))
688 9 0 FREETMPS;
690 16 9 while(i-- > 0)
696 6 3 while(i-- > 0) {
700 3 0 FREETMPS;
704 0 0 FREETMPS;
709 6 6 if(UNLIKELY(PL_stack_base + VALMARK > SP)) {
718 1 5 if(gimme == G_SCALAR) {
722 5 0 else if(gimme == G_LIST)
732 13 6 for(U8 targi = 0; targi < targcount; targi++) {
734 13 0 SV *sv = svp <= SP ? *svp : &PL_sv_undef;
735 0 13 if(SvPADTMP(sv)) {
768 0 17 if(varcount > 255)
775 14 17 for(int vari = 1; vari < varcount; vari++)
776 0 14 if(args[argi++]->padix != varix + vari)
782 17 0 switch(SvIV((SV *)hookdata)) {