Branch Coverage

xsubs/compound.xs
Criterion Covered Total %
branch 86 104 82.6


line true false branch
52 18 7899 CHECK_PARSE_DATA;
53 7881 18 CHECK_VOID_CONTEXT;
18 7881 CHECK_VOID_CONTEXT;
12 6 CHECK_VOID_CONTEXT;
55 7881 0 context = GIMME_V;
57 9269 7881 LL_foreach(pStruct, li, THIS->cpi.structs)
9269 7881 LL_foreach(pStruct, li, THIS->cpi.structs)
58 8923 346 if (pStruct->identifier[0] &&
8923 0 if (pStruct->identifier[0] &&
59 8550 373 pStruct->declarations &&
62 5690 2860 if (context == G_ARRAY)
63 0 5690 XPUSHs(sv_2mortal(newSVpv(pStruct->identifier, 0)));
67 5280 2601 if (context == G_ARRAY)
113 20 535 CHECK_PARSE_DATA;
114 517 18 CHECK_VOID_CONTEXT;
18 517 CHECK_VOID_CONTEXT;
12 6 CHECK_VOID_CONTEXT;
116 517 0 context = GIMME_V;
118 156 361 if (context == G_SCALAR && items != 2)
23 133 if (context == G_SCALAR && items != 2)
120 2 21 if (items > 1)
122 7 14 else if (mask == (T_STRUCT|T_UNION))
129 364 14 LL_foreach(pStruct, li, THIS->cpi.structs)
364 14 LL_foreach(pStruct, li, THIS->cpi.structs)
130 182 182 if (pStruct->tflags & mask)
137 494 0 NEED_PARSE_DATA;
30 464 NEED_PARSE_DATA;
139 397 97 if (items > 1)
143 447 397 for (i = 1; i < items; i++)
148 447 0 name = SvPV_nolen(ST(i));
151 258 189 if(mask & T_UNION &&
34 224 if(mask & T_UNION &&
152 34 0 name[0] == 'u' &&
153 34 0 name[1] == 'n' &&
154 34 0 name[2] == 'i' &&
155 34 0 name[3] == 'o' &&
156 34 0 name[4] == 'n' &&
163 383 30 if(mask & T_STRUCT &&
41 342 if(mask & T_STRUCT &&
164 41 0 name[0] == 's' &&
165 41 0 name[1] == 't' &&
166 41 0 name[2] == 'r' &&
167 41 0 name[3] == 'u' &&
168 41 0 name[4] == 'c' &&
169 41 0 name[5] == 't' &&
176 15 447 while (isSPACE(*name))
181 384 63 if (pStruct && pStruct->tflags & limit)
360 24 if (pStruct && pStruct->tflags & limit)
194 409 97 LL_foreach(pStruct, li, THIS->cpi.structs)
409 97 LL_foreach(pStruct, li, THIS->cpi.structs)
195 273 136 if (pStruct->tflags & mask)
197 0 273 XPUSHs(sv_2mortal(get_struct_spec_def(aTHX_ &THIS->cfg, pStruct)));