aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/jumptable
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-10 17:04:46 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-10 17:04:46 +0100
commit2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d (patch)
treef0c3627bedc2c95e822d6c3dcac80ded95e21461 /test/monniaux/jumptable
parentdfc45ce62e26a776366b1e7c5e5e068756073008 (diff)
downloadcompcert-kvx-2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d.tar.gz
compcert-kvx-2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d.zip
test code for jump tables
Diffstat (limited to 'test/monniaux/jumptable')
-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;
+}