Branch Coverage

lib/Syntax/Keyword/Match.xs
Criterion Covered Total %
branch 61 80 76.2


line true false branch
102 0 4 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
104 8 0 for(idx = 0; idx < n_cases; idx++) {
110 0 0 if(SvTRUE(ret))
114 4 4 else if(sv_numeq_flags(TARG, val, SV_SKIP_OVERLOAD))
132 2 1000010 bool has_magic = SvAMAGIC(TARG);
2 0 bool has_magic = SvAMAGIC(TARG);
0 2 bool has_magic = SvAMAGIC(TARG);
134 9000057 1000002 for(idx = 0; idx < n_cases; idx++) {
140 1 2 if(SvTRUE(ret))
143 9 9000045 else if(sv_eq(TARG, val))
157 1 0 for(idx = 0; idx < n_cases; idx++)
158 1 0 if(sv_isa_sv(TARG, values[idx]))
184 71 68 for(i = 0; i < n_cases; i++) {
190 2 69 if(is_if)
203 6 0 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
0 6 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
219 3 68 if(testop)
227 44 24 if(elseop)
272 32 9 while(n_cases) {
278 32 0 OP *blockstart = LINKLIST(blockop);
283 32 32 for(U32 casei = 0; casei < this_n_cases; casei++) {
287 0 32 if(is_if)
291 32 0 values[idx] = SvREFCNT_inc(cSVOPx(caseop)->op_sv);
304 7 2 if(elseop) {
305 6 1 o->op_other = LINKLIST(elseop);
346 100 42 for(blocki = 0; blocki < n_blocks; blocki++) {
356 103 100 for(int i = 0; i < n_cases; i++) {
366 16 26 if(has_default)
387 100 42 while(blocki >= 0) {
398 103 100 for(U32 casei = 0; casei < n_cases; casei++) {
399 2 101 if(block->cases[casei].is_if) {
411 9 0 if(caseop->op_type == OP_CONST && caseop->op_private & OPpCONST_BARE)
9 0 if(caseop->op_type == OP_CONST && caseop->op_private & OPpCONST_BARE)
417 62 33 if(use_dispatch && caseop->op_type == OP_CONST)
1 32 if(use_dispatch && caseop->op_type == OP_CONST)
428 32 68 if(this_block_dispatch) {
433 1 67 if(n_dispatch) {
442 8 34 if(n_dispatch)