mirror of
https://github.com/frida/tinycc
synced 2024-12-28 15:49:40 +03:00
737f984213
tests/tests2/78_vla_label.*: Add test.
46 lines
761 B
C
46 lines
761 B
C
#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;
|
|
}
|