Branch Coverage

lib/Syntax/Keyword/Match.xs
Criterion Covered Total %
branch 110 234 47.0


line true false branch
52 1 3 if(
54 2 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
3 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
1 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
0 1 SvIV_please_nomg(right) && SvIV_please_nomg(left)
3 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
60 1 2 switch((SvUOK(left) ? 1 : 0) | (SvUOK(right) ? 2 : 0)) {
67 1 0 if(riv < 0)
75 0 0 if(liv < 0)
86 2 0 NV const rnv = SvNV_nomg(right);
87 2 0 NV const lnv = SvNV_nomg(left);
108 0 4 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
110 8 0 for(idx = 0; idx < n_cases; idx++) {
114 0 8 if(has_magic &&
0 0 if(has_magic &&
116 0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
123 3 5 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
3 0 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
4 4 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
138 2 1000010 bool has_magic = SvAMAGIC(TARG);
2 0 bool has_magic = SvAMAGIC(TARG);
0 2 bool has_magic = SvAMAGIC(TARG);
140 9000057 1000002 for(idx = 0; idx < n_cases; idx++) {
144 3 9000054 if(has_magic &&
3 0 if(has_magic &&
146 3 0 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
3 0 if(SvTRUE(ret))
3 0 if(SvTRUE(ret))
2 1 if(SvTRUE(ret))
0 2 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
1 2 if(SvTRUE(ret))
149 9 9000045 else if(sv_eq(TARG, val))
187 52 50 for(i = 0; i < n_cases; i++) {
203 4 0 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
0 4 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
219 2 50 if(testop)
227 33 17 if(elseop)
272 30 8 while(n_cases) {
278 30 0 OP *blockstart = LINKLIST(blockop);
283 30 30 for(U32 casei = 0; casei < this_n_cases; casei++) {
300 7 1 if(elseop) {
301 6 1 o->op_other = LINKLIST(elseop);
338 0 31 Newx(blocks, n_blocks, struct MatchCaseBlock);
342 80 31 for(blocki = 0; blocki < n_blocks; blocki++) {
349 0 80 Newx(block->case_exprs, n_cases, OP *);
352 82 80 for(int i = 0; i < n_cases; i++)
360 13 18 if(has_default)
380 80 31 while(blocki >= 0) {
391 82 80 for(U32 casei = 0; casei < n_cases; casei++) {
405 31 40 if(use_dispatch && caseop->op_type == OP_CONST)
30 1 if(use_dispatch && caseop->op_type == OP_CONST)
416 30 50 if(this_block_dispatch) {
421 1 49 if(n_dispatch) {
430 7 24 if(n_dispatch)
472 6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
480 6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 6 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 6 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
2 4 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
482 2 0 CV *isacv = isGV(isagv) ? GvCV(isagv) : MUTABLE_CV(isagv);
489 0 2 EXTEND(SP, 2);
490 0 2 PUSHMARK(SP);
499 2 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
2 0 bool ret = SvTRUE(retsv);
2 0 bool ret = SvTRUE(retsv);
1 1 bool ret = SvTRUE(retsv);
0 1 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
1 1 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
502 2 0 FREETMPS;
517 3 3 SETs(boolSV(S_sv_isa_sv(aTHX_ lhs, rhs)));
524 7 0 if(rhs->op_type == OP_CONST && rhs->op_private & OPpCONST_BARE)
7 0 if(rhs->op_type == OP_CONST && rhs->op_private & OPpCONST_BARE)