diff options
Diffstat (limited to 'tests/tests2/79_vla_continue.c')
| -rw-r--r-- | tests/tests2/79_vla_continue.c | 92 |
1 files changed, 92 insertions, 0 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; +} |
