Branch Coverage

xsubs/typedef.xs
Criterion Covered Total %
branch 60 68 88.2


line true false branch
32 6 57 CHECK_PARSE_DATA;
33 51 6 CHECK_VOID_CONTEXT;
6 51 CHECK_VOID_CONTEXT;
4 2 CHECK_VOID_CONTEXT;
35 51 0 context = GIMME_V;
37 1063 51 LL_foreach(pTDL, tli, THIS->cpi.typedef_lists)
1063 51 LL_foreach(pTDL, tli, THIS->cpi.typedef_lists)
38 1091 1063 LL_foreach(pTypedef, ti, pTDL->typedefs)
1091 1063 LL_foreach(pTypedef, ti, pTDL->typedefs)
39 1091 0 if (is_typedef_defined(pTypedef))
41 692 399 if (context == G_ARRAY)
42 0 692 XPUSHs(sv_2mortal(newSVpv(pTypedef->pDecl->identifier, 0)));
46 43 8 if (context == G_ARRAY)
71 6 467 CHECK_PARSE_DATA;
72 461 6 CHECK_VOID_CONTEXT;
6 461 CHECK_VOID_CONTEXT;
4 2 CHECK_VOID_CONTEXT;
74 461 0 context = GIMME_V;
76 69 392 if (context == G_SCALAR && items != 2)
9 60 if (context == G_SCALAR && items != 2)
77 1 8 XSRETURN_IV(items > 1 ? items-1 : HT_count(THIS->cpi.htTypedefs));
79 452 0 NEED_PARSE_DATA;
2 450 NEED_PARSE_DATA;
81 418 34 if (items > 1)
85 479 418 for (i = 1; i < items; i++)
87 479 0 const char *name = SvPV_nolen(ST(i));
91 466 13 if (pTypedef)
105 16 18 if (size <= 0)
108 18 0 EXTEND(SP, size);
0 18 EXTEND(SP, size);
110 240 18 LL_foreach(pTDL, tli, THIS->cpi.typedef_lists)
240 18 LL_foreach(pTDL, tli, THIS->cpi.typedef_lists)
111 246 240 LL_foreach(pTypedef, ti, pTDL->typedefs)
246 240 LL_foreach(pTypedef, ti, pTDL->typedefs)