add test case for VLA segfaults

This test obviously shouldn't segfault, but currently does so. The
problem is in the VLA code, which fails to save the stack pointer before
taking a conditional branch in some cases.

See this thread:
http://lists.nongnu.org/archive/html/tinycc-devel/2015-04/msg00130.html
This commit is contained in:
Philip 2015-04-27 14:41:57 +00:00
parent bbcb54a1f4
commit bd489a4815
3 changed files with 25 additions and 1 deletions

View File

@ -0,0 +1,21 @@
#include <stdio.h>
/* This test segfaults as of April 27, 2015. */
void f(int argc)
{
char test[argc];
if(0)
label:
printf("boom!\n");
if(argc-- == 0)
return;
goto label;
}
int main()
{
f(2);
return 0;
}

View File

@ -0,0 +1,2 @@
boom!
boom!

View File

@ -96,7 +96,8 @@ TESTS = \
74_nocode_wanted.test \
75_array_in_struct_init.test \
76_dollars_in_identifiers.test \
77_push_pop_macro.test
77_push_pop_macro.test \
78_vla_label.test
# 34_array_assignment.test -- array assignment is not in C standard