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