-/*\r
- !!DESCRIPTION!! switch test\r
- !!ORIGIN!!\r
- !!LICENCE!! public domain\r
-*/\r
-\r
-/*#define STANDALONE*/\r
-\r
-#include <stdio.h>\r
-\r
+/*
+ !!DESCRIPTION!! switch test
+ !!ORIGIN!!
+ !!LICENCE!! public domain
+*/
+
+/*#define STANDALONE*/
+
+#include <stdio.h>
+
void testlimits(int i) {
- printf("%d:",i);\r
-\r
- switch(i) {
- case -1: /* works */\r
- /* case 0xffff: */ /* 'range error' (-1) */\r
-\r
- printf("-1\n");\r
- break;\r
- /* max int */\r
-\r
-/* case 0x7fff: */ /* works */\r
- case 32767: /* works */\r
- /* case 32768: */ /* 'range error' (correct for that one!) */\r
-\r
- printf("max\n");\r
- break;\r
- /* min int */\r
-\r
- case -32768: /* 'warning. constant is long' */\r
- /* case 0x8000: */ /* 'range error' */\r
- /* case -32769: */ /* 'range error' (correct for that one!) */\r
- printf("min\n");\r
- break;\r
- }\r
- printf("\n");\r
-}\r
-\r
-void testdefault1(unsigned char i) {\r
-/* we want a signed char */\r
-#ifdef REFCC\r
-\r
-#ifdef REFCC_UNSIGNED_CHARS\r
-signed char k;\r
-#else\r
-char k;\r
-#endif\r
- \r
-#else\r
- \r
-#ifdef UNSIGNED_CHARS\r
-signed char k;\r
-#else\r
-char k;\r
-#endif\r
-\r
-#endif\r
-\r
- for(;i<254;) {\r
- k = i;\r
- printf(">%d\n",i);i++;\r
- switch(k) {\r
- case 1:\r
- break;\r
- case 2:\r
- break;\r
- case 3:\r
- break;\r
- case 4:\r
- break;\r
- case 5:\r
- break;\r
- case 6:\r
- break;\r
- case 7:\r
- break;\r
- case 8:\r
- break;\r
- case 9:\r
- break;\r
- case 10:\r
- break;\r
- case 11:\r
- break;\r
- case 12:\r
- break;\r
- case 13:\r
- break;\r
- case 14:\r
- break;\r
- case 15:\r
- break;\r
- case 17:\r
- break;\r
- /* triggers bug ? */\r
- /* gcc warning: case label value exceeds maximum value for type */\r
- /* cc65 error: range error */\r
-\r
- /*\r
- case 170:\r
- break;\r
- */\r
- case 18:\r
- break;\r
- case 19:\r
- break;\r
- case 20:\r
- break;\r
- case 21:\r
- break;\r
- case 22:\r
- break;\r
- case 23:\r
- break;\r
- case 24:\r
- switch(k) {\r
- case 1:\r
- break;\r
- case 2:\r
- break;\r
- case 3:\r
- break;\r
- case 4:\r
- case 5:\r
- break;\r
- case 6:\r
- case 7:\r
- break;\r
- case 8:\r
- case 9:\r
- break;\r
- }\r
- break;\r
- case 100:\r
- break;\r
- default:\r
- printf(">>>default\n");\r
- /* triggers bug if this break; is missing? */\r
- /* break; */\r
- }\r
- }\r
-}\r
-\r
-void testdefault2(unsigned char i) {\r
-/* we want a unsigned char */\r
-#ifdef REFCC\r
-\r
-#ifdef REFCC_UNSIGNED_CHARS\r
-char k;\r
-#else\r
-unsigned char k;\r
-#endif\r
- \r
-#else\r
- \r
-#ifdef UNSIGNED_CHARS\r
-char k;\r
-#else\r
-unsigned char k;\r
-#endif\r
-\r
-#endif\r
-\r
- for(;i<254;) {\r
- k = i;\r
- printf(">%d\n",i);i++;\r
- switch(k) {\r
- case 1:\r
- break;\r
- case 2:\r
- break;\r
- case 3:\r
- break;\r
- case 4:\r
- break;\r
- case 5:\r
- break;\r
- case 6:\r
- break;\r
- case 7:\r
- break;\r
- case 8:\r
- break;\r
- case 9:\r
- break;\r
- case 10:\r
- break;\r
- case 11:\r
- break;\r
- case 12:\r
- break;\r
- case 13:\r
- break;\r
- case 14:\r
- break;\r
- case 15:\r
- break;\r
- case 17:\r
- break;\r
- /* triggers bug ? */\r
-\r
- case 170:\r
- break;\r
- \r
- case 18:\r
- break;\r
- case 19:\r
- break;\r
- case 20:\r
- break;\r
- case 21:\r
- break;\r
- case 22:\r
- break;\r
- case 23:\r
- break;\r
- case 24:\r
- switch(k) {\r
- case 1:\r
- break;\r
- case 2:\r
- break;\r
- case 3:\r
- break;\r
- case 4:\r
- case 5:\r
- break;\r
- case 6:\r
- case 7:\r
- break;\r
- case 8:\r
- case 9:\r
- break;\r
- }\r
- break;\r
- case 100:\r
- break;\r
- default:\r
- printf(">>>default\n");\r
- /* triggers bug if this break; is missing? */\r
- /* break; */\r
- }\r
- }\r
+ printf("%d:",i);
+
+ switch(i) {
+ case -1: /* works */
+ /* case 0xffff: */ /* 'range error' (-1) */
+
+ printf("-1\n");
+ break;
+ /* max int */
+
+/* case 0x7fff: */ /* works */
+ case 32767: /* works */
+ /* case 32768: */ /* 'range error' (correct for that one!) */
+
+ printf("max\n");
+ break;
+ /* min int */
+
+ case -32768: /* 'warning. constant is long' */
+ /* case 0x8000: */ /* 'range error' */
+ /* case -32769: */ /* 'range error' (correct for that one!) */
+ printf("min\n");
+ break;
+ }
+ printf("\n");
+}
+
+void testdefault1(unsigned char i) {
+/* we want a signed char */
+#ifdef REFCC
+
+#ifdef REFCC_UNSIGNED_CHARS
+signed char k;
+#else
+char k;
+#endif
+
+#else
+
+#ifdef UNSIGNED_CHARS
+signed char k;
+#else
+char k;
+#endif
+
+#endif
+
+ for(;i<254;) {
+ k = i;
+ printf(">%d\n",i);i++;
+ switch(k) {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 17:
+ break;
+ /* triggers bug ? */
+ /* gcc warning: case label value exceeds maximum value for type */
+ /* cc65 error: range error */
+
+ /*
+ case 170:
+ break;
+ */
+ case 18:
+ break;
+ case 19:
+ break;
+ case 20:
+ break;
+ case 21:
+ break;
+ case 22:
+ break;
+ case 23:
+ break;
+ case 24:
+ switch(k) {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ case 5:
+ break;
+ case 6:
+ case 7:
+ break;
+ case 8:
+ case 9:
+ break;
+ }
+ break;
+ case 100:
+ break;
+ default:
+ printf(">>>default\n");
+ /* triggers bug if this break; is missing? */
+ /* break; */
+ }
+ }
+}
+
+void testdefault2(unsigned char i) {
+/* we want a unsigned char */
+#ifdef REFCC
+
+#ifdef REFCC_UNSIGNED_CHARS
+char k;
+#else
+unsigned char k;
+#endif
+
+#else
+
+#ifdef UNSIGNED_CHARS
+char k;
+#else
+unsigned char k;
+#endif
+
+#endif
+
+ for(;i<254;) {
+ k = i;
+ printf(">%d\n",i);i++;
+ switch(k) {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 17:
+ break;
+ /* triggers bug ? */
+
+ case 170:
+ break;
+
+ case 18:
+ break;
+ case 19:
+ break;
+ case 20:
+ break;
+ case 21:
+ break;
+ case 22:
+ break;
+ case 23:
+ break;
+ case 24:
+ switch(k) {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ case 5:
+ break;
+ case 6:
+ case 7:
+ break;
+ case 8:
+ case 9:
+ break;
+ }
+ break;
+ case 100:
+ break;
+ default:
+ printf(">>>default\n");
+ /* triggers bug if this break; is missing? */
+ /* break; */
+ }
+ }
}
int main(void) {
- testlimits(32767);\r
- testlimits(-32768);\r
- testlimits(-1);\r
- \r
- testdefault1(1);\r
- testdefault1(2);\r
- testdefault1(3);\r
- testdefault1(4);\r
- \r
- testdefault2(1);\r
- testdefault2(2);\r
- testdefault2(3);\r
- testdefault2(4);\r
-\r
- return 0;\r
-}\r
+ testlimits(32767);
+ testlimits(-32768);
+ testlimits(-1);
+
+ testdefault1(1);
+ testdefault1(2);
+ testdefault1(3);
+ testdefault1(4);
+
+ testdefault2(1);
+ testdefault2(2);
+ testdefault2(3);
+ testdefault2(4);
+
+ return 0;
+}