Branch Coverage

blocksort.c
Criterion Covered Total %
branch 267 328 81.4


line true false branch
40 228 6224 if (lo == hi) return;
42 2799 3425 if (hi - lo > 3) {
43 8877 2799 for ( i = hi-4; i >= lo; i-- ) {
46 9242 1908 for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
2273 6969 for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
52 18836 6224 for ( i = hi-1; i >= lo; i-- ) {
55 25524 1658 for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
8346 17178 for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
109 12147 1601 while (sp > 0) {
111 0 12147 AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
114 6452 5695 if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
128 1036 4659 if (r3 == 0) med = eclass[fmap[lo]]; else
129 2685 1974 if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
137 2470 1081190 if (unLo > unHi) break;
139 972004 109186 if (n == 0) {
144 22345 86841 if (n > 0) break;
148 5695 96987 if (unLo > unHi) break;
150 6793 90194 if (n == 0) {
155 19120 71074 if (n < 0) break;
158 5695 19120 if (unLo > unHi) break;
164 422 5273 if (gtHi < ltLo) continue;
166 22297 5273 n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
167 4794 5273 m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
172 1976 3297 if (n - lo > hi - m) {
231 5140 20 for (i = 0; i < 257; i++) ftab[i] = 0;
232 75395 20 for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
233 5120 20 for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
234 5120 20 for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
236 75395 20 for (i = 0; i < nblock; i++) {
244 2383 20 for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
245 5120 20 for (i = 0; i < 256; i++) SET_BH(ftab[i]);
254 640 20 for (i = 0; i < 32; i++) {
267 1054633 82 for (i = 0; i < nblock; i++) {
268 54604 1000029 if (ISSET_BH(i)) j = i;
269 98418 956215 k = fmap[i] - H; if (k < 0) k += nblock;
279 7892 1248 while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
7457 435 while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
280 435 1248 if (ISSET_BH(k)) {
281 1327 435 while (WORD_BH(k) == 0xffffffff) k += 32;
282 4765 435 while (ISSET_BH(k)) k++;
285 82 1601 if (l >= nblock) break;
286 18412 670 while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
17481 931 while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
287 931 670 if (!ISSET_BH(k)) {
288 30312 931 while (WORD_BH(k) == 0x00000000) k += 32;
289 12564 931 while (!ISSET_BH(k)) k++;
292 0 1601 if (r >= nblock) break;
295 1601 0 if (r > l) {
301 1001630 1601 for (i = l; i <= r; i++) {
303 28218 973412 if (cc != cc1) { SET_BH(i); cc = cc1; };
312 80 2 if (H > nblock || nNotDone == 0) break;
62 18 if (H > nblock || nNotDone == 0) break;
323 75395 20 for (i = 0; i < nblock; i++) {
324 2550 75395 while (ftabCopy[j] == 0) j++;
328 0 20 AssertH ( j < 256, 1005 );
361 8874 245 if (c1 != c2) return (c1 > c2);
365 44 201 if (c1 != c2) return (c1 > c2);
369 0 201 if (c1 != c2) return (c1 > c2);
373 0 201 if (c1 != c2) return (c1 > c2);
377 0 201 if (c1 != c2) return (c1 > c2);
381 0 201 if (c1 != c2) return (c1 > c2);
385 0 201 if (c1 != c2) return (c1 > c2);
389 0 201 if (c1 != c2) return (c1 > c2);
393 0 201 if (c1 != c2) return (c1 > c2);
397 0 201 if (c1 != c2) return (c1 > c2);
401 0 201 if (c1 != c2) return (c1 > c2);
405 0 201 if (c1 != c2) return (c1 > c2);
413 16 588781 if (c1 != c2) return (c1 > c2);
415 0 588781 if (s1 != s2) return (s1 > s2);
419 17 588764 if (c1 != c2) return (c1 > c2);
421 0 588764 if (s1 != s2) return (s1 > s2);
425 16 588748 if (c1 != c2) return (c1 > c2);
427 0 588748 if (s1 != s2) return (s1 > s2);
431 16 588732 if (c1 != c2) return (c1 > c2);
433 0 588732 if (s1 != s2) return (s1 > s2);
437 16 588716 if (c1 != c2) return (c1 > c2);
439 0 588716 if (s1 != s2) return (s1 > s2);
443 16 588700 if (c1 != c2) return (c1 > c2);
445 0 588700 if (s1 != s2) return (s1 > s2);
449 16 588684 if (c1 != c2) return (c1 > c2);
451 0 588684 if (s1 != s2) return (s1 > s2);
455 16 588668 if (c1 != c2) return (c1 > c2);
457 0 588668 if (s1 != s2) return (s1 > s2);
460 72 588596 if (i1 >= nblock) i1 -= nblock;
461 72 588596 if (i2 >= nblock) i2 -= nblock;
466 588596 72 while (k >= 0);
498 0 5793 if (bigN < 2) return;
501 5851 5793 while (incs[hp] < bigN) hp++;
504 5840 5791 for (; hp >= 0; hp--) {
511 237 5952 if (i > hi) break;
514 3031 2964 while ( mainGtU (
519 2988 43 if (j <= (lo + h - 1)) break;
525 4476 1476 if (i > hi) break;
528 1469 959 while ( mainGtU (
533 517 952 if (j <= (lo + h - 1)) break;
539 1125 351 if (i > hi) break;
542 454 242 while ( mainGtU (
547 109 345 if (j <= (lo + h - 1)) break;
552 2 349 if (*budget < 0) return;
586 0 26 if (a > b) { t = a; a = b; b = t; };
587 0 26 if (b > c) {
589 0 0 if (a > b) b = a;
644 5819 5791 while (sp > 0) {
646 0 5819 AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
649 28 5791 if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
2 26 if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
652 2 5791 if (*budget < 0) return;
666 26 39013 if (unLo > unHi) break;
668 39013 0 if (n == 0) {
672 0 0 if (n > 0) break;
676 26 0 if (unLo > unHi) break;
678 0 0 if (n == 0) {
682 0 0 if (n < 0) break;
685 26 0 if (unLo > unHi) break;
691 26 0 if (gtHi < ltLo) {
696 0 0 n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
697 0 0 m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
706 0 0 if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
707 0 0 if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
708 0 0 if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
773 196611 3 for (i = 65536; i >= 0; i--) ftab[i] = 0;
777 28759 3 for (; i >= 3; i -= 4) {
791 1 3 for (; i >= 0; i--) {
798 102 3 for (i = 0; i < BZ_N_OVERSHOOT; i++) {
806 196608 3 for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
810 28759 3 for (; i >= 3; i -= 4) {
828 1 3 for (; i >= 0; i--) {
840 768 3 for (i = 0; i <= 255; i++) {
848 12 3 do h = 3 * h + 1; while (h <= 256);
851 3303 15 for (i = h; i <= 255; i++) {
854 1452 3144 while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
857 159 1293 if (j <= (h - 1)) goto zero;
862 12 3 } while (h != 1);
871 737 1 for (i = 0; i <= 255; i++) {
889 188377 735 for (j = 0; j <= 255; j++) {
890 187640 737 if (j != ss) {
892 97680 89960 if ( ! (ftab[sb] & SETMASK) ) {
895 5793 91887 if (hi > lo) {
905 2 5791 if (*budget < 0) return;
912 0 735 AssertH ( !bigDone[ss], 1006 );
922 188160 735 for (j = 0; j <= 255; j++) {
926 25006 735 for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
927 0 25006 k = ptr[j]-1; if (k < 0) k += nblock;
929 12666 12340 if (!bigDone[c1])
932 24998 735 for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
933 1 24997 k = ptr[j]-1; if (k < 0) k += nblock;
935 12365 12633 if (!bigDone[c1])
940 0 735 AssertH ( (copyStart[ss]-1 == copyEnd[ss])
0 0 AssertH ( (copyStart[ss]-1 == copyEnd[ss])
0 0 AssertH ( (copyStart[ss]-1 == copyEnd[ss])
949 188160 735 for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
992 734 1 if (i < 255) {
997 0 734 while ((bbSize >> shifts) > 65534) shifts++;
999 49768 734 for (j = bbSize-1; j >= 0; j--) {
1003 34 49734 if (a2update < BZ_N_OVERSHOOT)
1006 0 734 AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
1047 18 3 if (nblock < 10000) {
1056 1 2 if (i & 1) i++;
1066 0 3 if (wfact < 1 ) wfact = 1;
1067 0 3 if (wfact > 100) wfact = 100;
1078 2 1 if (budget < 0) {
1087 55588 0 for (i = 0; i < s->nblock; i++)
1088 21 55567 if (ptr[i] == 0)
1091 0 21 AssertH( s->origPtr != -1, 1003 );