double fix
[tinycc.git] / TODO
blob8c23290f6d6afa01ae43e862ca92de4497c08916
1 TODO list:
3 - add separate symbol/offset handling (= fix some constant
4   initialisation bugs)
5 - setjmp is not supported properly in bound checking.
6 - add 'CType' structure to optimize type handling (= compile even faster)
7 - suppress unneeded hash table for Symbols (= compile even faster)
8 - add checks for multiple including of same file (= compile even faster)
9 - better local variables handling (needed for other targets)
10 - fix bound check code with '&' on local variables (currently done
11   only for local arrays).
12 - To check: bound checking and float/long long/struct copy code
13 - To fix: 'sizeof' generate code if too complex expression is given.
14 - free all allocated data and use longjmp for errors (useful for libtcc use)
16 Not critical:
18 - C99: add variable size arrays
19 - C99: add complex types
20 - C99: fix multiple compound literals inits in blocks (ISOC99
21   normative example - only relevant when using gotos! -> must add
22   boolean variable to tell if compound literal was already
23   initialized).
24 - add PowerPC or ARM code generator and improve codegen for RISC (need
25   to suppress VT_LOCAL and use a base register instead).
26 - interactive mode / integrated debugger
27 - fix preprocessor symbol redefinition
28 - better constant opt (&&, ||, ?:)
29 - add portable byte code generator and interpreter for other
30   unsupported architectures.
31 - C++: variable declaration in for, minimal 'class' support.
32 - win32: add __stdcall, __intxx. use resolve for bchecked malloc et
33   al. check GetModuleHandle for dlls. check exception code (exception
34   filter func).
35 - handle void (__attribute__() *ptr)()
36 - handle '? x, y : z' in reversed function arguments or unsized
37   variable initialization (',' is considered incorrectly as separator
38   in preparser).