Branch Coverage

autovivification.xs
Criterion Covered Total %
branch 156 310 50.3


line true false branch
77 0 0 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
79 0 0 if (!SvOK(sv)) {
0 0 if (!SvOK(sv)) {
0 0 if (!SvOK(sv)) {
82 0 0 if (SvREADONLY(sv))
86 0 0 if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV) {
0 0 if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV) {
88 0 0 } else if (SvTYPE(sv) >= SVt_PV) {
89 0 0 SvPV_free(sv);
0 0 SvPV_free(sv);
0 0 SvPV_free(sv);
0 0 SvPV_free(sv);
94 0 0 val = to_hash ? MUTABLE_SV(newHV()) : MUTABLE_SV(newAV());
97 0 0 SvSETMAGIC(sv);
98 0 0 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
101 0 0 if (SvGMAGICAL(sv)) {
170 127878 17350 if (!(oi = ptable_fetch(a_op_map, o))) {
225 91617 23797 while (o->op_flags & OPf_KIDS) {
227 0 91617 if (!o)
229 88211 3406 if ((oi = ptable_fetch(a_op_map, o))) {
251 43919 10463 if ((oi = ptable_fetch(a_op_map, o)))
253 8175 46207 if (!(o->op_flags & OPf_KIDS))
256 46207 0 } while (o);
272 28542 20480 while (!(oi->flags & A_HINT_ROOT)) {
290 28542 20480 while (!(roi->flags & A_HINT_ROOT))
292 0 20480 if (!roi)
296 0 20480 if (!rflags)
300 4404 16076 if (root->op_flags & OPf_MOD) {
301 540 3864 if (rflags & A_HINT_STORE)
304 14942 1134 if (rflags & (A_HINT_FETCH|A_HINT_KEYS|A_HINT_VALUES))
308 4998 15482 if (!flags) {
317 3051 12431 return oi->flags & A_HINT_ROOT ? 0 : flags;
328 3172 324 if (AvMAX(sv) >= 0 || SvGMAGICAL(sv)
3172 0 if (AvMAX(sv) >= 0 || SvGMAGICAL(sv)
329 0 3172 || (SvRMAGICAL(sv) && mg_find(sv, PERL_MAGIC_tied)))
0 0 || (SvRMAGICAL(sv) && mg_find(sv, PERL_MAGIC_tied)))
333 36 181 if (HvARRAY(sv) || SvGMAGICAL(sv)
36 0 if (HvARRAY(sv) || SvGMAGICAL(sv)
334 0 36 || (SvRMAGICAL(sv) && mg_find(sv, PERL_MAGIC_tied)))
0 0 || (SvRMAGICAL(sv) && mg_find(sv, PERL_MAGIC_tied)))
338 9726 6336 SvGETMAGIC(sv);
0 9726 SvGETMAGIC(sv);
339 12914 3148 if (SvOK(sv))
12914 0 if (SvOK(sv))
0 12914 if (SvOK(sv))
363 11720 0 if (oi->flags & A_HINT_DEREF) {
364 10439 1281 if (a_undef(TOPs)) {
387 10854 0 if (oi->flags & A_HINT_DEREF) {
388 9821 1033 if (a_undef(TOPs))
402 436 0 if (oi->flags & A_HINT_DEREF) {
403 412 24 if (a_undef(TOPs)) {
442 338 163 if (flags & A_HINT_STRICT)
444 1 162 else if (flags & A_HINT_WARN)
459 24086 0 if (flags & A_HINT_DEREF) {
464 1311 22775 if (flags & (A_HINT_NOTIFY|A_HINT_STORE)) {
466 501 810 if (a_undef(TOPs))
481 288 72 if (a_undef(TOPs)) {
484 288 0 if (GIMME_V == G_SCALAR) {
144 144 if (GIMME_V == G_SCALAR) {
486 0 144 PUSHi(0);
501 5966 433 if (a_undef(TOPm1s)) {
504 2983 2983 if (PL_op->op_type == OP_EXISTS)
538 0 0 if (isexdel) {
539 0 0 if (isexdel & OPpMULTIDEREF_EXISTS) {
545 0 0 if (o->op_flags & OPf_MOD) {
552 0 0 return flags ? (flags | other_flags) : 0;
592 0 0 EXTEND(SP, 1);
606 0 0 EXTEND(SP, 2);
638 0 0 if (!flags)
654 0 0 if (a_undef(sv))
660 0 0 sv = (SV *) GvAVn((GV *) sv);
661 0 0 if (a_undef(sv))
666 0 0 if (a_undef(sv))
672 0 0 sv = GvSVn((GV *) sv);
673 0 0 if (a_undef(sv))
680 0 0 if (a_undef(sv))
702 0 0 esv = GvSVn((GV *) esv);
704 0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
0 0 if (UNLIKELY(SvROK(esv) && !SvGAMAGIC(esv) && ckWARN(WARN_MISC)))
711 0 0 if (actions & MDEREF_FLAG_last) {
733 0 0 if (a_undef(sv))
739 0 0 sv = (SV *) GvHVn((GV *) sv);
740 0 0 if (a_undef(sv))
745 0 0 if (a_undef(sv))
751 0 0 sv = GvSVn((GV *) sv);
752 0 0 if (a_undef(sv))
759 0 0 if (a_undef(sv))
781 0 0 key = GvSVn((GV *) key);
785 0 0 if (actions & MDEREF_FLAG_last) {
813 0 0 if (flags & (A_HINT_NOTIFY|A_HINT_STORE))
815 0 0 if (flags & A_HINT_EXISTS)
820 0 0 XPUSHs(sv);
831 28389 4723 if (o->op_type == type && o->op_ppaddr != new_pp
4551 23838 if (o->op_type == type && o->op_ppaddr != new_pp
832 1534 3017 && cUNOPo->op_first->op_type != OP_GV) {
835 1534 0 if (oi) {
859 23670 133335 if (hint & A_HINT_DO)
875 1 8 if (hint & A_HINT_DO) {
902 23349 54602 if ((hint & A_HINT_DO) && !(hint & A_HINT_STRICT))
18565 4784 if ((hint & A_HINT_DO) && !(hint & A_HINT_STRICT))
907 16060 12442 if ((hint & A_HINT_DO) && !(hint & A_HINT_STRICT))
14420 1640 if ((hint & A_HINT_DO) && !(hint & A_HINT_STRICT))
917 63548 106453 if (old_ck == a_old_ck_rv2sv && o->op_flags & OPf_KIDS) {
63548 0 if (old_ck == a_old_ck_rv2sv && o->op_flags & OPf_KIDS) {
919 63548 0 if (kid && kid->op_type == OP_GV) {
60848 2700 if (kid && kid->op_type == OP_GV) {
920 15870 44978 if (hint & A_HINT_DO)
928 57781 112220 if (hint & A_HINT_DO) {
958 16093 34218 if (cUNOPo->op_first->op_type == OP_GV)
962 27826 6392 if (hint & A_HINT_DO && !(hint & A_HINT_STRICT)) {
24812 3014 if (hint & A_HINT_DO && !(hint & A_HINT_STRICT)) {
991 127 25 if (hint & A_HINT_DO)
992 127 0 a_recheck_rv2xv(OpSIBLING(cUNOPo->op_first), OP_RV2HV, a_pp_rv2hv);
997 377 61 if (hint & A_HINT_DO) {
1045 8175 438 if (hint & A_HINT_DO) {
1046 5367 2808 if (enabled) {
1075 2166615 75265 for (; o; o = o->op_next) {
1080 7 2166608 if (xsh_peep_seen(o, seen))
1085 175883 5 if (o->op_ppaddr != a_pp_deref) {
1087 17285 158598 if (oi && (oi->flags & A_HINT_DO)) {
15816 1469 if (oi && (oi->flags & A_HINT_DO)) {
1097 267880 49850 if (o->op_ppaddr != a_pp_deref)
1100 0 49850 if (!oi)
1103 34664 15186 if (!(flags & A_HINT_DEREF)
1104 20564 14100 && (flags & A_HINT_DO)
1105 12954 7610 && (o->op_private & OPpDEREF || flags & A_HINT_ROOT)) {
12870 84 && (o->op_private & OPpDEREF || flags & A_HINT_ROOT)) {
1109 18237 31613 if (flags & A_HINT_DEREF)
1115 25087 13954 if (o->op_ppaddr != a_pp_rv2av)
1118 0 13954 if (!oi)
1120 5110 8844 if (!(oi->flags & A_HINT_DEREF))
1124 30861 88 if (o->op_ppaddr != a_pp_rv2hv && o->op_ppaddr != a_pp_rv2hv_simple)
18641 12220 if (o->op_ppaddr != a_pp_rv2hv && o->op_ppaddr != a_pp_rv2hv_simple)
1127 0 12308 if (!oi)
1129 3925 8383 if (!(oi->flags & A_HINT_DEREF)) {
1146 0 0 if (o->op_ppaddr != a_pp_multideref) {
1148 0 0 if (!oi)
1151 0 0 if (a_do_multideref(o, flags)) {
1273 0 20577 RETVAL = xsh_hints_tag(SvOK(hint) ? SvUV(hint) : 0);
0 0 RETVAL = xsh_hints_tag(SvOK(hint) ? SvUV(hint) : 0);
0 0 RETVAL = xsh_hints_tag(SvOK(hint) ? SvUV(hint) : 0);
0 20577 RETVAL = xsh_hints_tag(SvOK(hint) ? SvUV(hint) : 0);
1281 16967 3609 if (!SvOK(tag))
16967 0 if (!SvOK(tag))
16967 0 if (!SvOK(tag))