Branch Coverage

FindRef.xs
Criterion Covered Total %
branch 74 256 28.9


line true false branch
82 0 30 if (!SvROK (target_ref))
87 1 29 if (SvIMMORTAL (targ))
1 0 if (SvIMMORTAL (targ))
1 0 if (SvIMMORTAL (targ))
1 0 if (SvIMMORTAL (targ))
0 1 if (SvIMMORTAL (targ))
89 0 0 if (targ == &PL_sv_undef)
91 0 0 else if (targ == &PL_sv_yes)
93 0 0 else if (targ == &PL_sv_no)
95 0 0 else if (targ == &PL_sv_placeholder)
102 7253 30 for (arena = PL_sv_arenaroot; arena; arena = SvANY (arena))
108 1225757 7253 while (--idx > 0)
112 2209 1223548 if (SvTYPE (sv) >= SVt_LAST)
116 76288 1147260 if ((rmagical = SvRMAGICAL (sv)))
119 343944 879604 if (SvTYPE (sv) >= SVt_PVMG)
130 21720 322224 if (SvMAGICAL (sv)) /* name-pads use SvMAGIC for other purposes */
134 21720 21720 while (mg)
136 0 21720 if (mg->mg_obj == targ && mg->mg_flags & MGf_REFCOUNTED)
0 0 if (mg->mg_obj == targ && mg->mg_flags & MGf_REFCOUNTED)
137 0 0 res_pair (form ("referenced (in mg_obj) by '%c' type magic attached to", mg->mg_type));
0 0 res_pair (form ("referenced (in mg_obj) by '%c' type magic attached to", mg->mg_type));
139 0 21720 if ((SV *)mg->mg_ptr == targ)
140 0 0 res_pair (form ("%sreferenced (in mg_ptr) by '%c' type magic attached to",
0 0 res_pair (form ("%sreferenced (in mg_ptr) by '%c' type magic attached to",
0 0 res_pair (form ("%sreferenced (in mg_ptr) by '%c' type magic attached to",
149 62136 1161412 if (SvROK (sv))
151 48 62088 if (SvRV (sv) == targ && !SvWEAKREF (sv) && sv != target_ref)
15 33 if (SvRV (sv) == targ && !SvWEAKREF (sv) && sv != target_ref)
15 0 if (SvRV (sv) == targ && !SvWEAKREF (sv) && sv != target_ref)
152 0 15 res_pair ("referenced by");
0 15 res_pair ("referenced by");
158 56638 40812 if (AvREAL (sv))
159 549756 56638 for (i = AvFILLp (sv) + 1; i--; )
160 13 549743 if (AvARRAY (sv)[i] == targ)
161 5 8 res_pair (form ("the array element %d of", i));
5 8 res_pair (form ("the array element %d of", i));
166 22824 4418 if (hv_iterinit ((HV *)sv))
170 378122 22824 while ((he = hv_iternext ((HV *)sv)))
171 1 378121 if (HeVAL (he) == targ)
172 0 1 res_pair (form ("the hash member '%.*s' of", HeKLEN (he), HeKEY (he)));
0 1 res_pair (form ("the hash member '%.*s' of", HeKLEN (he), HeKEY (he)));
179 0 73545 PADLIST *padlist = CvISXSUB (cv) ? 0 : CvPADLIST (sv);
181 0 73545 if (padlist)
190 0 0 while (depth)
197 0 0 if (PadARRAY (pad)[0] == targ)
198 0 0 res_pair ("the argument array for");
0 0 res_pair ("the argument array for");
200 0 0 for (i = PadMAX (pad) + 1; --i; )
201 0 0 if (PadARRAY (pad)[i] == targ)
206 0 0 if (name && PadnamePV (name) && *PadnamePV (name))
0 0 if (name && PadnamePV (name) && *PadnamePV (name))
0 0 if (name && PadnamePV (name) && *PadnamePV (name))
207 0 0 res_pair (form ("the lexical '%s' in", PadnamePV (name)));
0 0 res_pair (form ("the lexical '%s' in", PadnamePV (name)));
209 0 0 res_pair ("an unnamed lexical in");
0 0 res_pair ("an unnamed lexical in");
216 19800 53745 if (CvCONST (sv) && (SV*)CvXSUBANY (sv).any_ptr == targ)
0 19800 if (CvCONST (sv) && (SV*)CvXSUBANY (sv).any_ptr == targ)
217 0 0 res_pair ("the constant value of");
0 0 res_pair ("the constant value of");
219 71691 1854 if (!CvWEAKOUTSIDE (sv) && (SV*)CvOUTSIDE (sv) == targ)
0 71691 if (!CvWEAKOUTSIDE (sv) && (SV*)CvOUTSIDE (sv) == targ)
220 0 0 res_pair ("the containing scope for");
0 0 res_pair ("the containing scope for");
222 0 73545 if (sv == targ && CvANON (sv))
0 0 if (sv == targ && CvANON (sv))
223 0 0 if (CvSTART (sv)
224 0 0 && CvSTART (sv)->op_type == OP_NEXTSTATE
225 0 0 && CopLINE ((COP *)CvSTART (sv)))
226 0 0 res_text (form ("the closure created at %s:%d",
0 0 res_text (form ("the closure created at %s:%d",
0 0 res_text (form ("the closure created at %s:%d",
230 0 0 res_text (form ("the closure created somewhere in file %s (PLEASE REPORT!)",
237 97614 0 if (GvGP (sv))
239 0 97614 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
0 0 if (GvSV (sv) == (SV *)targ) res_gv ('$');
240 0 97614 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
0 0 if (GvAV (sv) == (AV *)targ) res_gv ('@');
241 0 97614 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
0 0 if (GvHV (sv) == (HV *)targ) res_gv ('%');
242 0 97614 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
0 0 if (GvCV (sv) == (CV *)targ) res_gv ('&');
248 0 0 if (LvTARG (sv) == targ)
250 0 0 if (LvTYPE (sv) == 'y')
254 0 0 if (mg && mg->mg_obj)
0 0 if (mg && mg->mg_obj)
255 0 0 res_pair (form ("the target for the lvalue hash element '%.*s',",
0 0 res_pair (form ("the target for the lvalue hash element '%.*s',",
0 0 res_pair (form ("the target for the lvalue hash element '%.*s',",
258 0 0 res_pair (form ("the target for the lvalue array element #%d,", LvTARGOFF (sv)));
0 0 res_pair (form ("the target for the lvalue array element #%d,", LvTARGOFF (sv)));
261 0 0 res_pair (form ("an lvalue reference target (type '%c', ofs %d, len %d),",
0 0 res_pair (form ("an lvalue reference target (type '%c', ofs %d, len %d),",
268 76288 1147260 if (rmagical)
274 353 30 for (i = 0; i <= PL_tmps_ix; ++i)
275 5 348 if (PL_tmps_stack [i] == targ)
278 0 30 if (targ == (SV*)PL_main_cv)
282 0 30 EXTEND (SP, 2);
297 0 58 if (!SvROK (rv))
306 0 34 if (!SvROK (rv))