Commit Graph

392 Commits (2d3b9559bf569f137cefb7f8386a0dc58e33c81f)

Author SHA1 Message Date
grischka adb1456472 Handle backslashes within #include, #error, #warning 2007-12-17 19:35:15 +00:00
grischka 6c96c41ee4 Import changesets (part 4) 428,457,460,467: defines for openbsd etc. 2007-12-16 18:24:44 +00:00
grischka 34140dd627 Use _WIN32 for a windows hosted tcc and define it for the PE target. 2007-12-13 19:07:19 +00:00
grischka f99d3de221 Import 409,410: ARM EABI by Daniel Glöckner 2007-12-04 20:38:09 +00:00
grischka 2de1b2d14c Some in-between fixes (See Changelog for details). 2007-11-25 22:14:35 +00:00
grischka d778bde7f9 Import more changesets from Rob Landley's fork (part 2) 2007-11-21 17:16:31 +00:00
grischka 54bf8c0556 Import some changesets from Rob Landley's fork (part 1) 2007-11-14 17:34:30 +00:00
bellard fb2c34f8cd fixed sign extension in some type conversions (Dave Dodge) 2006-10-28 14:47:39 +00:00
bellard 52b7254b9c fixed multiple typedef specifiers handling 2006-10-28 14:28:02 +00:00
bellard 0bea5c7f21 workaround for function pointers in conditional expressions (Dave Dodge) 2006-10-28 14:15:37 +00:00
bellard 24a19cc37e discard type qualifiers when comparing function parameters (Dave Dodge) 2006-10-28 14:13:28 +00:00
bellard 3b8cd565be fixed multiple concatenation of PPNUM tokens (initial patch by Dave Dodge) 2006-10-28 14:05:19 +00:00
bellard 200b58dad8 initial implementation of -E option 2006-10-16 19:44:00 +00:00
bellard 62c5a5466a fixed parsing of function parameters 2005-09-03 22:51:34 +00:00
bellard 7bc5e51847 anonymous union/struct support (Filip Navara) 2005-09-03 22:33:53 +00:00
bellard e9c64e3f47 windows style fastcall (Filip Navara) 2005-09-03 22:21:22 +00:00
bellard 81f957ae09 normalized slashes in paths (Filip Navara) 2005-09-03 22:18:51 +00:00
bellard 6f8b8887b1 added support for win32 wchar_t (Filip Navara) 2005-09-03 21:54:47 +00:00
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