aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/jumptable/jumptable.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/monniaux/jumptable/jumptable.c')
-rw-r--r--test/monniaux/jumptable/jumptable.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/monniaux/jumptable/jumptable.c b/test/monniaux/jumptable/jumptable.c
new file mode 100644
index 00000000..8415cbf8
--- /dev/null
+++ b/test/monniaux/jumptable/jumptable.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+
+#define CASE(x) case x: return 100+x;
+
+int big_switch(int x) {
+ switch (x) {
+ CASE(0)
+ CASE(1)
+ CASE(2)
+ CASE(3)
+ CASE(4)
+ CASE(5)
+ CASE(6)
+ CASE(7)
+ CASE(8)
+ CASE(9)
+ CASE(10)
+ CASE(11)
+ CASE(12)
+ CASE(13)
+ CASE(14)
+ CASE(15)
+ }
+ return 99;
+}
+
+int main() {
+ for(int i=-1; i<16; i++) {
+ if (big_switch(i) != 100+i) {
+ printf("error at %d\n", i);
+ }
+ }
+ return 0;
+}