From 524be938fd042f395254336bdb0c8eb0ec9eee93 Mon Sep 17 00:00:00 2001 From: bellard Date: Sun, 18 Aug 2002 14:34:02 +0000 Subject: [PATCH] updated --- .cvsignore | 8 +++++--- TODO | 32 +++++++++++++++++--------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/.cvsignore b/.cvsignore index 40eed63..191165a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -55,6 +55,8 @@ libtcc_test p2.il short.prof tccp.c -test1.out -test2.out -test3.out +instr.S +p.c +p2.c +tcctest[1234] +test[1234].out diff --git a/TODO b/TODO index d0cc5d3..2c6d78f 100644 --- a/TODO +++ b/TODO @@ -1,33 +1,35 @@ TODO list: -- relocate .stabs information -- fix -I search order (same as gcc) -- dynamic hash table resizing -- better section generator (suppress mmaps) -- relocate .bounds section content -- add size info on all ELF symbols -- add separate symbol/offset handling +- add separate symbol/offset handling (= fix some constant + initialisation bugs) +- add 'CType' structure to optimize type handling (= compile even faster) +- suppress unneeded hash table for Symbols (= compile even faster) +- - better local variables handling (needed for other targets) -- handle void (__attribute__() *ptr)() +- setjmp is not supported properly in bound checking. - To check: bound checking and float/long long/struct copy code - To fix: 'sizeof' generate code if too complex expression is given. - fix bound check code with '&' on local variables (currently done only for local arrays). -- win32: add __stdcall, __intxx. use resolve for bchecked malloc et - al. check GetModuleHandle for dlls. check exception code (exception - filter func). +- free all allocated data and use longjmp for errors (useful for libtcc use) Not critical: +- C99: add variable size arrays +- C99: add complex types - add PowerPC or ARM code generator and improve codegen for RISC (need to suppress VT_LOCAL and use a base register instead). - interactive mode / integrated debugger -- fix multiple compound literals inits in blocks (ISOC99 normative - example - only relevant when using gotos! -> must add boolean - variable to tell if compound literal was already initialized). -- fix L"\x1234" wide string case (need to store them as utf8 ?) +- C99: fix multiple compound literals inits in blocks (ISOC99 + normative example - only relevant when using gotos! -> must add + boolean variable to tell if compound literal was already + initialized). - fix preprocessor symbol redefinition - better constant opt (&&, ||, ?:) - add portable byte code generator and interpreter for other unsupported architectures. - C++: variable declaration in for, minimal 'class' support. +- win32: add __stdcall, __intxx. use resolve for bchecked malloc et + al. check GetModuleHandle for dlls. check exception code (exception + filter func). +- handle void (__attribute__() *ptr)()