diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/tests2/79_vla_continue.c | 92 | ||||
| -rw-r--r-- | tests/tests2/79_vla_continue.expect | 4 | ||||
| -rw-r--r-- | tests/tests2/Makefile | 5 |
3 files changed, 99 insertions, 2 deletions
diff --git a/tests/tests2/79_vla_continue.c b/tests/tests2/79_vla_continue.c new file mode 100644 index 0000000..9c48c1d --- /dev/null +++ b/tests/tests2/79_vla_continue.c @@ -0,0 +1,92 @@ +#include <stdio.h> + +int f(void) +{ + return 5; +} + +void test1() +{ + int count = 10; + void *addr[10]; + for(;count--;) { + int a[f()]; + + addr[count] = a; + + continue; + } + + if(addr[9] == addr[0]) { + printf("OK\n"); + } else { + printf("NOT OK\n"); + } +} + +void test2() +{ + int count = 10; + void *addr[count]; + for(;count--;) { + int a[f()]; + + addr[count] = a; + + continue; + } + + if(addr[9] == addr[0]) { + printf("OK\n"); + } else { + printf("NOT OK\n"); + } +} + +void test3() +{ + int count = 10; + void *addr[count]; + while(count--) { + int a[f()]; + + addr[count] = a; + + continue; + } + + if(addr[9] == addr[0]) { + printf("OK\n"); + } else { + printf("NOT OK\n"); + } +} + +void test4() +{ + int count = 10; + void *addr[count]; + do { + int a[f()]; + + addr[count] = a; + + continue; + } while(count--); + + if(addr[9] == addr[0]) { + printf("OK\n"); + } else { + printf("NOT OK\n"); + } +} + +int main(void) +{ + test1(); + test2(); + test3(); + test4(); + + return 0; +} diff --git a/tests/tests2/79_vla_continue.expect b/tests/tests2/79_vla_continue.expect new file mode 100644 index 0000000..b462a5a --- /dev/null +++ b/tests/tests2/79_vla_continue.expect @@ -0,0 +1,4 @@ +OK +OK +OK +OK diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile index 470716b..6148c0b 100644 --- a/tests/tests2/Makefile +++ b/tests/tests2/Makefile @@ -96,8 +96,9 @@ TESTS = \ 74_nocode_wanted.test \ 75_array_in_struct_init.test \ 76_dollars_in_identifiers.test \ - 77_push_pop_macro.test \ - 78_vla_label.test + 77_push_pop_macro.test +# 78_vla_label.test -- currently broken +# 79_vla_continue.test -- currently broken # 34_array_assignment.test -- array assignment is not in C standard |
