This patch disables the optimization of saving stack pointers lazily, which didn't fully take into account that control flow might not reach the stack-saving instructions. I've decided to leave in the extra calls to vla_sp_save() in case anyone wants to restore this optimization. Tests added and enabled. There are two remaining bugs: VLA variables can be modified, and jumping into the scope of a declared VLA will cause a segfault rather than a compiler error. Both of these do not affect correct C code, but should be fixed at some point. Once VLA variables have been made properly immutable, we can share them with the saved stack pointer and save stack and instructions. |
||
|---|---|---|
| .. | ||
| tests2 | ||
| abitest.c | ||
| asmtest.S | ||
| boundtest.c | ||
| CMakeLists.txt | ||
| gcctestsuite.sh | ||
| libtcc_test.c | ||
| Makefile | ||
| tcctest.c | ||
| tcctest.py | ||
| vla_test.c | ||