diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-10 17:04:46 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-10 17:04:46 +0100 |
commit | 2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d (patch) | |
tree | f0c3627bedc2c95e822d6c3dcac80ded95e21461 | |
parent | dfc45ce62e26a776366b1e7c5e5e068756073008 (diff) | |
download | compcert-kvx-2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d.tar.gz compcert-kvx-2aaf154d3b6aec244d3dc014a5a38fb6b5952b1d.zip |
test code for jump tables
-rw-r--r-- | test/monniaux/jumptable/jumptable.c | 34 |
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; +} |