source: EcnlProtoTool/trunk/tcc-0.9.26/TODO@ 279

Last change on this file since 279 was 279, checked in by coas-nagasima, 7 years ago

ファイルを追加、更新。

File size: 3.2 KB
Line 
1TODO list:
2
3Bugs:
4
5- fix macro substitution with nested definitions (ShangHongzhang)
6- FPU st(0) is left unclean (kwisatz haderach). Incompatible with
7 optimized gcc/msc code
8
9- constructors
10- cast bug (Peter Wang)
11- define incomplete type if defined several times (Peter Wang).
12- configure --cc=tcc (still one bug in libtcc1.c)
13- test binutils/gcc compile
14- tci patch + argument.
15- see -lxxx bug (Michael Charity).
16- see transparent union pb in /urs/include/sys/socket.h
17- precise behaviour of typeof with arrays ? (__put_user macro)
18 but should suffice for most cases)
19- handle '? x, y : z' in unsized variable initialization (',' is
20 considered incorrectly as separator in preparser)
21- transform functions to function pointers in function parameters
22 (net/ipv4/ip_output.c)
23- fix function pointer type display
24- check lcc test suite -> fix bitfield binary operations
25- check section alignment in C
26- fix invalid cast in comparison 'if (v == (int8_t)v)'
27- finish varargs.h support (gcc 3.2 testsuite issue)
28- fix static functions declared inside block
29- fix multiple unions init
30- sizeof, alignof, typeof can still generate code in some cases.
31- Fix the remaining libtcc memory leaks.
32- make libtcc fully reentrant (except for the compilation stage itself).
33
34Bound checking:
35
36- '-b' bug.
37- fix bound exit on RedHat 7.3
38- setjmp is not supported properly in bound checking.
39- fix bound check code with '&' on local variables (currently done
40 only for local arrays).
41- bound checking and float/long long/struct copy code. bound
42 checking and symbol + offset optimization
43
44Missing features:
45
46- disable-asm and disable-bcheck options
47- __builtin_expect()
48- improve '-E' option.
49- atexit (Nigel Horne)
50- packed attribute
51- C99: add complex types (gcc 3.2 testsuite issue)
52- postfix compound literals (see 20010124-1.c)
53
54Optimizations:
55
56- suppress specific anonymous symbol handling
57- more parse optimizations (=even faster compilation)
58- memory alloc optimizations (=even faster compilation)
59- optimize VT_LOCAL + const
60- better local variables handling (needed for other targets)
61
62Not critical:
63
64- C99: fix multiple compound literals inits in blocks (ISOC99
65 normative example - only relevant when using gotos! -> must add
66 boolean variable to tell if compound literal was already
67 initialized).
68- add PowerPC or ARM code generator and improve codegen for RISC (need
69 to suppress VT_LOCAL and use a base register instead).
70- interactive mode / integrated debugger
71- fix preprocessor symbol redefinition
72- better constant opt (&&, ||, ?:)
73- add portable byte code generator and interpreter for other
74 unsupported architectures.
75- C++: variable declaration in for, minimal 'class' support.
76- win32: __intxx. use resolve for bchecked malloc et al.
77 check exception code (exception filter func).
78- handle void (__attribute__() *ptr)()
79
80Fixed (probably):
81
82- bug with defines:
83 #define spin_lock(lock) do { } while (0)
84 #define wq_spin_lock spin_lock
85 #define TEST() wq_spin_lock(a)
86- typedefs can be structure fields
87- see bugfixes.diff + improvement.diff from Daniel Glockner
88- long long constant evaluation
89- add alloca()
90- gcc '-E' option.
91- #include_next support for /usr/include/limits ?
92- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
93- win32: add __stdcall, check GetModuleHandle for dlls.
Note: See TracBrowser for help on using the repository browser.