The tests are taken almost verbatim from the open source project PicoC. It can be found at https://code.google.com/p/picoc/. The tests range from very simple/trivial ones to more complicated. My view is that the more tests the better. Without tests like this I was very reluctant to make any changes to tcc for the fear of breaking things. The tests pass on Win32, OSX, Linux x86 and x86_64. One or two tests fail on each platform due to differences in the runtime library.
Showing the changes to tests2/42_function_pointer.c (1 of 111 files). Show all
Unified · Split
| @@ -0,0 +1,18 @@ | ||
| 1 | +#include <stdio.h> | |
| 2 | + | |
| 3 | +int fred(int p) | |
| 4 | +{ | |
| 5 | + printf("yo %d\n", p); | |
| 6 | + return 42; | |
| 7 | +} | |
| 8 | + | |
| 9 | +int (*f)(int) = &fred; | |
| 10 | + | |
| 11 | +int main() | |
| 12 | +{ | |
| 13 | + printf("%d\n", (*f)(24)); | |
| 14 | + | |
| 15 | + return 0; | |
| 16 | +} | |
| 17 | + | |
| 18 | +/* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/ | |