1 /* Test the types of switch statement.
11 sparseSwitch({sign
} {type
} val
)
14 {storage
} {attr
} {sign
} {type
} local
;
44 testSparseSwitch(void)
46 ASSERT(sparseSwitch(1) == 7);
47 ASSERT(sparseSwitch(4) == 12);
48 ASSERT(sparseSwitch(6) == 14);
49 ASSERT(sparseSwitch(12) == 14);
50 ASSERT(sparseSwitch(13) == 19);
51 #ifndef __SDCC_pdk14 // Lack of memory
52 ASSERT(sparseSwitch(14) == 19);
53 ASSERT(sparseSwitch(15) == 19);
54 ASSERT(sparseSwitch(19) == 30);
55 ASSERT(sparseSwitch(0) == 30);
59 #ifndef __SDCC_pdk14 // Lack of memory
61 denseSwitch({sign
} {type
} val
)
64 {storage
} {attr
} {sign
} {type
} local
;
95 #ifndef __SDCC_pdk14 // Lack of memory
96 ASSERT(denseSwitch(0) == 1);
97 ASSERT(denseSwitch(1) == 14);
98 ASSERT(denseSwitch(2) == 15);
99 ASSERT(denseSwitch(3) == 34);
100 ASSERT(denseSwitch(4) == 17);
101 ASSERT(denseSwitch(5) == 12);
102 ASSERT(denseSwitch(100) == 12);
107 testDenseIntSwitch(void)
109 #ifndef __SDCC_pdk14 // Lack of memory
110 #if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
111 volatile int val
= 1000;
112 volatile int ret
= 0;