History

Udated and cleaned up TODO.

grischka committed 18 years ago

Commit 265dddb1 parent 36674082 files · +45 −33Browse files

Unified · Split

2 files
  1. Makefile +1 −1
  2. TODO +44 −32
Makefile+1−1
@@ -175,7 +175,7 @@ tiny_impdef$(EXESUF): tiny_impdef.c · 174 unmodified lines
175175 ifdef CONFIG_WIN32
176176 # for windows, we must use TCC because we generate ELF objects
177177 LIBTCC1_OBJS=$(addprefix win32/lib/, crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o) libtcc1.o
178−LIBTCC1_CC=./tcc.exe -Bwin32
178+LIBTCC1_CC=./tcc.exe -Bwin32 -DTCC_TARGET_PE
179179 else
180180 LIBTCC1_OBJS=libtcc1.o
181181 LIBTCC1_CC=$(CC)
TODO+44−32
@@ -1,63 +1,65 @@
11 TODO list:
22
3−- FPU st(0) is left unclean (incompatible with optimized gcc/msc code)
3+Bugs:
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
48
5−- bug with defines:
6− #define spin_lock(lock) do { } while (0)
7− #define wq_spin_lock spin_lock
8− #define TEST() wq_spin_lock(a)
9−- typedefs can be structure fields
10−- see bugfixes.diff + improvement.diff from Daniel Glockner
119 - constructors
1210 - cast bug (Peter Wang)
1311 - define incomplete type if defined several times (Peter Wang).
14−- long long constant evaluation
1512 - configure --cc=tcc (still one bug in libtcc1.c)
16−- disable-asm and disable-bcheck options
1713 - test binutils/gcc compile
18−- add alloca(), __builtin_expect()
19−- gcc '-E' option.
20−- optimize VT_LOCAL + const
2114 - tci patch + argument.
22−- '-b' bug.
23−- atexit (Nigel Horne)
2415 - see -lxxx bug (Michael Charity).
2516 - see transparent union pb in /urs/include/sys/socket.h
2617 - precise behaviour of typeof with arrays ? (__put_user macro)
27−- #include_next support for /usr/include/limits ?
2818 but should suffice for most cases)
2919 - handle '? x, y : z' in unsized variable initialization (',' is
3020 considered incorrectly as separator in preparser)
31−- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
32−- transform functions to function pointers in function parameters (net/ipv4/ip_output.c)
21+- transform functions to function pointers in function parameters
22+ (net/ipv4/ip_output.c)
3323 - fix function pointer type display
34−- fix bound exit on RedHat 7.3
3524 - check lcc test suite -> fix bitfield binary operations
3625 - check section alignment in C
3726 - fix invalid cast in comparison 'if (v == (int8_t)v)'
38−- packed attribute
3927 - finish varargs.h support (gcc 3.2 testsuite issue)
4028 - fix static functions declared inside block
41−- C99: add variable size arrays (gcc 3.2 testsuite issue)
42−- C99: add complex types (gcc 3.2 testsuite issue)
43−- postfix compound literals (see 20010124-1.c)
4429 - 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+
34+Bound checking:
35+
36+- '-b' bug.
37+- fix bound exit on RedHat 7.3
4538 - setjmp is not supported properly in bound checking.
46−- better local variables handling (needed for other targets)
4739 - fix bound check code with '&' on local variables (currently done
4840 only for local arrays).
49−- sizeof, alignof, typeof can still generate code in some cases.
5041 - bound checking and float/long long/struct copy code. bound
5142 checking and symbol + offset optimization
52−- Fix the remaining libtcc memory leaks.
53−- make libtcc fully reentrant (except for the compilation stage itself).
54−- '-MD' option
43+
44+Missing features:
45+
46+- disable-asm and disable-bcheck options
47+- __builtin_expect()
48+- improve '-E' option.
49+- add '-MD' option
50+- atexit (Nigel Horne)
51+- packed attribute
52+- C99: add variable size arrays (gcc 3.2 testsuite issue)
53+- C99: add complex types (gcc 3.2 testsuite issue)
54+- postfix compound literals (see 20010124-1.c)
5555
5656 Optimizations:
5757
5858 - suppress specific anonymous symbol handling
5959 - more parse optimizations (=even faster compilation)
6060 - memory alloc optimizations (=even faster compilation)
61+- optimize VT_LOCAL + const
62+- better local variables handling (needed for other targets)
6163
6264 Not critical:
6365
@@ -73,11 +75,21 @@ Not critical: · 9 unmodified lines
7375 - add portable byte code generator and interpreter for other
7476 unsupported architectures.
7577 - C++: variable declaration in for, minimal 'class' support.
76−- win32: add __stdcall, __intxx. use resolve for bchecked malloc et
77− al. check GetModuleHandle for dlls. check exception code (exception
78− filter func).
78+- win32: __intxx. use resolve for bchecked malloc et al.
79+ check exception code (exception filter func).
7980 - handle void (__attribute__() *ptr)()
8081
82+Fixed (probably):
8183
82−
83−
84+- bug with defines:
85+ #define spin_lock(lock) do { } while (0)
86+ #define wq_spin_lock spin_lock
87+ #define TEST() wq_spin_lock(a)
88+- typedefs can be structure fields
89+- see bugfixes.diff + improvement.diff from Daniel Glockner
90+- long long constant evaluation
91+- add alloca()
92+- gcc '-E' option.
93+- #include_next support for /usr/include/limits ?
94+- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
95+- win32: add __stdcall, check GetModuleHandle for dlls.