Commit Graph

424 Commits

Author SHA1 Message Date
bellard
44738b516a fixed function type check 2005-09-03 21:07:35 +00:00
bellard
b0b8ac13ce mark executable sections as executable when running in memory 2005-09-03 18:31:43 +00:00
bellard
4d7eadb2fa preprocessor function macro parsing fix (grischka) - disabled -fleading-underscore for win32 2005-06-17 22:05:58 +00:00
bellard
f6db2edc40 added -f[no-]leading-underscore - '@' symbol for asm 2005-06-15 22:32:29 +00:00
bellard
fe9b1f60ce win32 merge (grischka) 2005-04-17 13:15:54 +00:00
bellard
4821702fb4 win32 merge 2005-04-14 23:49:21 +00:00
bellard
0bca832c18 #pragma pack support (grischka) 2005-04-13 21:30:51 +00:00
bellard
8f2d519203 #include_next support (Bernhard Fischer) 2005-04-10 22:18:53 +00:00
bellard
2c538d7a2b initial PE format support 2005-04-10 21:46:58 +00:00
bellard
fc72e41a55 better gcc compatibility (Jon Griffiths) 2004-12-16 22:19:28 +00:00
bellard
48c85f1b15 optimisations: hash table for include file search, pool for symbol allocation - sympler token string allocation - '-b' fix with '-run' option 2004-11-07 15:45:19 +00:00
bellard
1d0e5e8b01 stack full fix 2004-11-02 21:55:13 +00:00
bellard
1e1d3ff687 packed attribute support 2004-10-29 23:55:13 +00:00
bellard
736b565766 fixed const and volatile function parameters typing - fixed string parsing when skipping code 2004-10-28 21:14:30 +00:00
bellard
6b52984ce4 added _Bool in bit-fields 2004-10-27 21:42:06 +00:00
bellard
c9c05ca5f0 copyright update 2004-10-27 21:38:03 +00:00
bellard
59c3563827 do not generate code for unused inline functions - fixed long long code gen bug - added --oformat linker option 2004-10-23 22:52:05 +00:00
bellard
9668499b9f primitive fastcall functions support - -fno-common option - -Ttext linker option - bit field fixes - section alignment fixes 2004-10-18 00:18:20 +00:00
bellard
13affef3f1 win32 configure 2004-10-07 21:11:43 +00:00
bellard
c50af8399d fixed __LINE__ token type 2004-10-07 20:15:50 +00:00
bellard
ec7d36326d C67 COFF executable format support (TK) 2004-10-05 22:33:55 +00:00
bellard
6e5b1cc43a ARM fixes (Daniel Glockner) 2004-10-04 22:19:21 +00:00
bellard
79c72b2419 initial TMS320C67xx support (TK) 2004-10-04 21:57:35 +00:00
bellard
df36de6507 fixes for dietlibc 2004-10-02 14:11:28 +00:00
bellard
22d8df96c6 comment parsing fix - bitfields partial fix 2004-10-02 13:48:50 +00:00
bellard
fe203057c2 fixed assignment of const struct in struct 2003-10-17 20:59:15 +00:00
bellard
114883e078 added -funsigned-char, -fsigned-char and -Wimplicit-function-declaration 2003-10-17 20:43:47 +00:00
bellard
4df5bd2eb0 ARM target support (Daniel Glockner) - allow unsigned char as default on ARM (Daniel Glockner) - fixed small ld script support (Daniel Glockner) 2003-10-14 22:15:56 +00:00
bellard
bef8703f77 added arguments to -run - fixed libc linking when running in memory - output a warning instead of an error if invalid escaped sequence in character 2003-10-04 21:23:51 +00:00
bellard
d369a77647 unbounded section name (might be useful when section name contains function name for g++ linkonce sections) 2003-10-04 14:41:18 +00:00
bellard
c5ce5eaeda fixed -w option - doc update (thanx to Romain Francoise) 2003-10-04 13:04:47 +00:00
bellard
9c1106d854 added -w option 2003-09-19 20:35:50 +00:00
bellard
f8d0241764 changed tcc_get_symbol() prototype 2003-07-20 19:19:58 +00:00
bellard
c5959b77b4 fixed typdefed type parsing (Mauro Persano) 2003-07-20 18:44:29 +00:00
bellard
7b940fcb1b reject abstract declarators in function definition (Mauro Persano) 2003-07-20 12:40:53 +00:00
bellard
21d2d99bdc suppressed warning for const function parameters 2003-06-02 20:32:30 +00:00
bellard
d0476a0e2e help update 2003-05-24 16:21:09 +00:00
bellard
98713a6be3 added -rdynamic support 2003-05-24 15:46:29 +00:00
bellard
8f5e44a439 changed license to LGPL 2003-05-24 14:11:17 +00:00
bellard
638e666c42 fixed zero arg macro parse 2003-05-18 18:48:33 +00:00
bellard
6cdf6f88d7 fixed macro argument substitution 2003-05-18 17:16:20 +00:00
bellard
c4e6b2e9be alacarte linking (Dave Long) 2003-04-28 22:06:38 +00:00
bellard
2b64f2f570 added -nostdlib 2003-04-27 11:45:01 +00:00
bellard
7828683e60 added __builtin_constant_p() and __builtin_types_compatible_p() support 2003-04-26 21:28:09 +00:00
bellard
9791bfaf48 more precise C type check support (const warnings) - added generic -W option support 2003-04-26 20:49:46 +00:00
bellard
410fc57ba0 default output object filename is basename of input filename (same behaviour as gcc) 2003-04-16 21:35:02 +00:00
bellard
214ccccea7 simpler function call API 2003-04-16 21:16:20 +00:00
bellard
c5ab452d64 switch label parse fix 2003-04-14 22:23:36 +00:00
bellard
85fa15e64c compile fix 2003-04-13 22:42:15 +00:00
bellard
40987541dc added __TIME__ and __DATE__ support - added -v and -run options 2003-04-13 21:54:03 +00:00
bellard
5647993e79 configure support 2003-04-13 19:49:30 +00:00
bellard
f46a02a360 fixed macro function bug 2003-04-13 18:32:37 +00:00
bellard
cab6018913 fixed comment parsing 2003-04-13 18:05:51 +00:00
bellard
0c618f4b7f sanitized string and character constant parsing 2003-04-13 17:37:14 +00:00
bellard
d6819c2c36 comment fixes (Peter Lund) 2003-04-13 14:35:27 +00:00
bellard
73acbe2413 function parameters must be converted to pointer of functions 2003-04-13 14:30:32 +00:00
bellard
60b9a1aa38 better _Bool lvalue support 2003-04-13 14:11:34 +00:00
bellard
eed54d6bfb struct syntax fix 2003-04-13 14:03:18 +00:00
bellard
8e40dd90bb macro opt - asm support - new option parsing - supressed IL code 2003-01-06 20:21:08 +00:00
bellard
4df76253ad FreeBSD fixes - file type guessing - glibc2.2 fixes - ELF align issue 2002-12-08 14:35:31 +00:00
bellard
abf909e1ac added static bit fields init - version change - #error and #warning fix - support aligned attribute without parameter 2002-11-24 16:00:08 +00:00
bellard
b9d9425993 fixed structure type test - fixed enum parsing - added warning for int/ptr conversions instead of error 2002-11-24 14:56:25 +00:00
bellard
7b2721ff07 added empty structs support - changed double align to 4 (i386 default ABI) - added align support for structs - added GCC defines for basic types 2002-11-24 14:18:17 +00:00
bellard
0841db04c5 fixed structure init without {} - fixed function declaration parse 2002-11-23 23:56:12 +00:00
bellard
ab9973c843 optimized unary() - fix long long signed comparisons 2002-11-23 23:12:26 +00:00
bellard
0adc5a8921 fixed line numbering 2002-11-23 22:35:28 +00:00
bellard
a9f08655ac expression optimization 2002-11-23 22:26:46 +00:00
bellard
9e180474f0 optimized token strings - optimized token hashing 2002-11-23 22:02:40 +00:00
bellard
8901fbeef1 parsing optimizations 2002-11-23 18:15:17 +00:00
bellard
b81d4ba6b3 prepared parser for direct use of file->buf_ptr - faster comment parsing 2002-11-22 23:28:06 +00:00
bellard
cdcfed9737 restored include file optimization - added static on all globals 2002-11-22 22:16:30 +00:00
bellard
2956bd85cd suppressed ch1 and preparser 2002-11-22 18:12:41 +00:00
bellard
e926c359bb error message fixes - CH_EOB is now '\' 2002-11-22 14:43:38 +00:00
bellard
2f219d8702 use CH_EOB 2002-11-22 14:12:28 +00:00
bellard
63965fc585 further parse optimizations 2002-11-22 13:37:52 +00:00
bellard
5286d3d84c suppressed secondary hash tables - began parsing optimization 2002-11-20 00:29:04 +00:00
bellard
9620fd18e4 added CType structure for type storage - supressed define hash table - added time dump in bench 2002-11-18 21:46:44 +00:00
bellard
804d0c8d41 added computed gotos - better runtime error handling 2002-11-03 00:43:55 +00:00
bellard
43f30315f9 added alignof and typeof - better sizeof support - fixed get_tok_str() for TOK_PPNUM 2002-11-02 20:45:52 +00:00
bellard
c0180c4e5f added correct ## handling : added TOK_PPNUM token 2002-11-02 17:02:31 +00:00
bellard
c62792e6aa ignore some gcc options - removed many memory leaks - suppressed many global variables 2002-11-02 14:12:32 +00:00
bellard
d8ef07df04 added tcc_relocate() and tcc_get_symbol() 2002-09-08 22:46:32 +00:00
bellard
8ecc9cd789 macro optimization - string constant optimisation 2002-09-08 21:55:47 +00:00
bellard
ab4da04aa9 added include file optimization 2002-09-08 19:34:32 +00:00
bellard
509fa60368 force #if #endif match in same file 2002-09-08 16:14:57 +00:00
bellard
405c88106d fixed bound checking for structures - fixed ?: type handling - fixed '--' parsing 2002-09-08 12:42:36 +00:00
bellard
44b19defc2 fixed octal char const parsing - better __FUNCTION__ handling - handling of static libraries in case of memory compilation 2002-08-31 12:43:39 +00:00
bellard
6dd6a026c3 better command line parsing - added -r option 2002-08-30 22:46:35 +00:00
bellard
d2115bfb27 added symbol + relocation handling 2002-08-29 23:05:59 +00:00
bellard
46803f05e0 fixed local extern handling - fixed '!' with symbols 2002-08-29 21:57:41 +00:00
bellard
41391fbb20 added linux define - added __FUNCTION - fixed spaces parsing - defined special macros 2002-08-29 21:16:24 +00:00
bellard
f946dffd33 suppressed section_ptr - fixed constant string allocation 2002-08-18 14:34:57 +00:00
bellard
53834650fb moved ELF stuff to tccelf.c - fixed #include and #line parsing - removed size limit on strings - added support for bound checking in generated executables - fixed -I include order - fixed incorrect function displayed in runtime error - fixed lvalue type when saved in local stack 2002-08-18 13:22:55 +00:00
bellard
7ac43f6d19 better DLL generation - added size to all ELF symbols - dynamic hash table size 2002-07-27 23:08:04 +00:00
bellard
18e40e1a25 add stripping if not debug mode - moved debug and bound check init 2002-07-27 15:38:21 +00:00
bellard
519ec30bcf added __start_x and __stop_x symbol generation - fp_hw fix for dynamic executables 2002-07-27 15:18:33 +00:00
bellard
9b48237795 use data_offset in sections instead of pointer to ease section reallocation - relocated .stabs and .bounds sections - fixed char constants casts - fixed implicit cast to unary plus - fixed type for string constants 2002-07-27 14:05:37 +00:00
bellard
540cd6fde7 fixed preprocessor expression parsing 2002-07-26 22:59:19 +00:00
bellard
b12e91aa01 fixed command line help - added -B option - moved bcheck.c outside of tcc 2002-07-24 22:10:59 +00:00
bellard
6cdecbe4e6 added runtime library - fixed more relocations 2002-07-22 23:37:39 +00:00
bellard
9051cc21af better elf output - generalized dynamic array use 2002-07-22 00:20:38 +00:00
bellard
7b54a53e08 added archive support - better ELF output - fixed symbol relocation - added COMMON symbol handling 2002-07-18 00:51:11 +00:00
bellard
a50e58e5ba more consistent command line handling 2002-07-15 22:17:02 +00:00
bellard
61a1599052 added object file reading support 2002-07-15 21:33:00 +00:00
bellard
3cd4a7c4f9 better elf output - fixed float relocation data 2002-07-14 23:00:39 +00:00
bellard
6cd36b1285 added better relocation support (needed for file output) 2002-07-14 14:38:33 +00:00
bellard
12f3f3592c better file output - fixed order of variable declaration if initializer is present 2002-07-13 17:23:25 +00:00
bellard
17cbb388d3 optimized bound checking 2002-07-13 15:55:38 +00:00
bellard
3d3e2372c5 added char/short types in lvalues to fix cast problems - added gcc style variadic macros - fixed zero arg macros - refuse extra comma at end of function call - fixed unused logical operation result case 2002-07-13 11:17:19 +00:00
bellard
4e5a85292b correct line numbers when reparsing - added explicit TokenString structure - better logic for search path 2002-06-30 17:34:30 +00:00
bellard
8f64c13c40 added libtcc - fixed spill reg bugs 2002-05-13 23:00:17 +00:00
bellard
7f4fcf1216 added tcc finite math function to avoid portability problems 2002-03-17 11:32:48 +00:00
bellard
22ce5f248a added floating point constant propagation 2002-03-17 11:15:05 +00:00
bellard
4226681d36 added optionnal bound check compile - fixed error reporting 2002-03-03 22:45:55 +00:00
bellard
5a50e73980 added CIL target 2002-02-10 16:14:03 +00:00
bellard
5bf9559e9e bound check fix 2002-01-26 19:13:31 +00:00
bellard
6e2d1a809a increased hash table sizes - added cdecl and stdcall attributes - #elif fix - empty args in macro fix - benchmark option 2002-01-26 18:05:29 +00:00
bellard
0b8f352cb7 fixed -D option 2002-01-13 11:07:19 +00:00
bellard
9c06595a1e win32 defines + new internal file layer 2002-01-12 16:39:35 +00:00
bellard
bbd541d760 added ansi proto 2002-01-05 21:13:17 +00:00
bellard
8d19107149 implicit cast in global init - added bound check define - fixed division by zero in constant eval 2002-01-05 19:55:43 +00:00
bellard
d85bf50bfe better run time error display 2002-01-05 17:02:38 +00:00
bellard
5f85585b77 finished bound check code (still slow) - fixed binary ops code gen - fixed float return 2002-01-05 16:15:57 +00:00
bellard
9eab1030f7 fixed VT_LLOCAL dereferencing 2002-01-05 00:40:47 +00:00
bellard
4124f1a1c1 added minimal debug info support 2002-01-04 20:17:24 +00:00
bellard
14799da838 suppressed some buffer overflows - moved function generation to cpu specific code (XXX: should have less cpu specific code for that) 2002-01-03 22:43:10 +00:00
bellard
8b41bc57e1 0 constant can be used as a pointer 2002-01-03 21:29:54 +00:00
bellard
1465899342 added full long long support - added section support - added __attribute__ parsing - added -U option 2002-01-03 21:14:59 +00:00
bellard
21c35b9443 use register classes (will allow better and simpler code gen - fixed long double handling 2001-12-23 00:34:26 +00:00
bellard
498551188e last patches to separate type and value handling 2001-12-22 17:05:23 +00:00
bellard
f7181903bb separated type and value on stack 2001-12-20 01:05:21 +00:00
bellard
f50d0b4488 error() fixes 2001-12-19 23:01:51 +00:00
bellard
2694c10547 float update 2001-12-17 21:56:48 +00:00
bellard
fbc51a39f9 new value stack system to handle the futur types (long long and floats) 2001-12-16 17:58:32 +00:00
bellard
cb44835e94 fixed macro bug and dummy float constant parsing 2001-12-13 23:20:55 +00:00
bellard
25618c0430 float parsing + long double 2001-12-13 22:28:53 +00:00
bellard
9cebd0617f began to integrate floating point numbers - separated i386 code generator - fixed severe forward reference bug 2001-12-12 21:16:17 +00:00
bellard
3d1bdcf70e added bitfields support 2001-12-09 22:04:15 +00:00
bellard
cb693e5318 fixed switch - preparation for new types 2001-12-09 00:27:44 +00:00
bellard
9b3c96c88e better type storage 2001-12-08 22:51:04 +00:00
bellard
52ca29cd4f fix function call and ! operator 2001-12-08 20:24:33 +00:00
bellard
3c9ab729ae added multiple files compile - various symbol related fixes 2001-12-08 15:04:01 +00:00
bellard
5d7f7bb5ef even faster 2001-12-06 23:57:36 +00:00
bellard
711075fe3b use faster I/O functions - static compile patches 2001-12-06 23:39:24 +00:00
bellard
d7e05e1b8f better type checks - syntax fixes (gnu_ext added) - variable external defs 2001-12-05 02:02:25 +00:00
bellard
8523baf61d better external allocs handling 2001-12-05 00:45:08 +00:00
bellard
18a8013fe7 version change 2001-12-02 21:44:49 +00:00
bellard
ebdec645a8 added structure assignment (for = and function calls) - added cast handling for short/char (still not complete) 2001-12-02 21:24:43 +00:00
bellard
cb1c8c892c first stage for structure assign - added more generic function call code generation 2001-12-02 16:25:49 +00:00
bellard
f22a32342b added K&R proto parsing 2001-12-02 14:59:18 +00:00
bellard
df9c047082 added compound literals parsing - fixed string init with {} 2001-12-02 14:47:48 +00:00
bellard
4298fccb0c added wide char and string parsing - added zero init of auto initializers 2001-11-28 22:48:43 +00:00
bellard
0c6b2dcdfe completed initializer handlign (compute size before storing initializers if unknown size - macro subst fix 2001-11-26 22:57:27 +00:00
bellard
b9455a7484 added hash tables - add -o option for debug output 2001-11-18 16:33:01 +00:00
bellard
44b5c9742a fixed \nnn char parsing, added #line, added __VA_ARGS__, added macros in #include, added \xnn parsing, added L'' and L parsing (still not OK), added 0bXX, added ISOC99 initializers handling, added declaration parsing anywhere in block 2001-11-17 17:22:38 +00:00
bellard
ef6e8589d1 ISOC99 restrict,__func__ - added misc macros 2001-11-13 22:54:35 +00:00
bellard
605a028bf4 eval function args in reverse order - added short and unsigned char support - added more messages 2001-11-11 18:00:58 +00:00
bellard
d261452977 better type decl - added -l and -D options - added PROFILE defines 2001-11-11 16:07:43 +00:00
bellard
507a221f7e new preprocessing: macro function handling and better ANSI conformance 2001-11-11 02:53:01 +00:00
bellard
cd526480b8 suppressed another alloc 2001-11-08 01:30:44 +00:00
bellard
cdf6247518 fix defined() handling 2001-11-08 01:26:37 +00:00
bellard
a254461560 added #if support 2001-11-08 01:12:31 +00:00
bellard
b0bdbb14ef added function prototypes and correct recursive type parsing 2001-11-07 23:13:29 +00:00
bellard
9736493149 new code generator with constant propagation and register allocation - new parser - added #include handling 2001-11-06 01:20:20 +00:00
bellard
946b600ddd added union/struct + correct local symbols 2001-11-01 14:48:10 +00:00
bellard
b15f269fbe added enum, typedefs, goto, switch 2001-10-30 22:43:19 +00:00
bellard
4e92bac070 added do while continue - simplify break/continue handling 2001-10-30 20:27:54 +00:00
bellard
704d61357c clarified function types - added extern / static - added unsigned and invalid type parsing 2001-10-29 23:23:01 +00:00
bellard
9c1b84560e added 'x'= operators 2001-10-28 22:24:16 +00:00
bellard
9a8dfaac35 added comments + correct error reporting 2001-10-28 15:20:12 +00:00
bellard
586b05f7e6 remove unused features for TINY mode 2001-10-28 04:08:38 +00:00
bellard
3115a8a38b added for, cond and comma support - fixed div/mod code 2001-10-28 02:51:52 +00:00
bellard
881aa9077a shl and shr and for tiny mode only 2001-10-28 01:15:41 +00:00
bellard
27f6e16bae Initial revision 2001-10-27 23:48:39 +00:00