kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

6_8_30_switch_sparse_chain.c (587B)


      1 /* Sparse case values: three cases spread over a 1000-element range. The
      2  * density-driven jump-table policy must reject this and keep a chain. The
      3  * test pins correct behavior independent of which strategy was picked. */
      4 static int pick(int x) {
      5   switch (x) {
      6     case 1:
      7       return 11;
      8     case 50:
      9       return 22;
     10     case 1000:
     11       return 33;
     12     default:
     13       return 99;
     14   }
     15 }
     16 
     17 int test_main(void) {
     18   int s = 0;
     19   s += pick(1);
     20   s += pick(50);
     21   s += pick(1000);
     22   s += pick(2);
     23   s += pick(999);
     24   s += pick(1001);
     25   return s - 263; /* 11+22+33+99+99+99 - 263 = 100 */
     26 }