diff options
| author | 2025-12-13 19:21:04 +0100 | |
|---|---|---|
| committer | 2025-12-13 19:21:04 +0100 | |
| commit | e51ac7ec7d3e32e1771c9f824da3dc7e4dcd2bc5 (patch) | |
| tree | a0b7a0c29247374b96fdbfb29bc365d15e9e36a5 /test/external/c-testsuite/tests/single-exec/00207.c | |
| parent | 6c7cdc537b7b341f9ca25a3e8b61de46c99840e7 (diff) | |
add c-testsuite
Diffstat (limited to 'test/external/c-testsuite/tests/single-exec/00207.c')
| -rw-r--r-- | test/external/c-testsuite/tests/single-exec/00207.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/external/c-testsuite/tests/single-exec/00207.c b/test/external/c-testsuite/tests/single-exec/00207.c new file mode 100644 index 0000000..4096495 --- /dev/null +++ b/test/external/c-testsuite/tests/single-exec/00207.c @@ -0,0 +1,45 @@ +#include <stdio.h> + +/* This test segfaults as of April 27, 2015. */ +void f1(int argc) +{ + char test[argc]; + if(0) + label: + printf("boom!\n"); + if(argc-- == 0) + return; + goto label; +} + +/* This segfaulted on 2015-11-19. */ +void f2(void) +{ + goto start; + { + int a[1 && 1]; /* not a variable-length array */ + int b[1 || 1]; /* not a variable-length array */ + int c[1 ? 1 : 1]; /* not a variable-length array */ + start: + a[0] = 0; + b[0] = 0; + c[0] = 0; + } +} + +void f3(void) +{ + printf("%d\n", 0 ? printf("x1\n") : 11); + printf("%d\n", 1 ? 12 : printf("x2\n")); + printf("%d\n", 0 && printf("x3\n")); + printf("%d\n", 1 || printf("x4\n")); +} + +int main() +{ + f1(2); + f2(); + f3(); + + return 0; +} |