summaryrefslogtreecommitdiff
path: root/05/tcc-0.9.27/tests/tests2/78_vla_label.c
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2022-02-18 12:36:57 -0500
committerpommicket <pommicket@gmail.com>2022-02-18 12:36:57 -0500
commit826d1afd58c2e064a9c8fdb09eda1b08469de1a8 (patch)
treeb4fedc589a1944f6cf3f451a9db976b431e89b25 /05/tcc-0.9.27/tests/tests2/78_vla_label.c
parentc42c5d94b8944e19cd17a5b540e4c70013c62b92 (diff)
newer version of tcc almost working
Diffstat (limited to '05/tcc-0.9.27/tests/tests2/78_vla_label.c')
-rw-r--r--05/tcc-0.9.27/tests/tests2/78_vla_label.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/05/tcc-0.9.27/tests/tests2/78_vla_label.c b/05/tcc-0.9.27/tests/tests2/78_vla_label.c
new file mode 100644
index 0000000..4096495
--- /dev/null
+++ b/05/tcc-0.9.27/tests/tests2/78_vla_label.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;
+}