Joe Soroka
339f961c11
fixed Makefile test targets
2011-07-22 02:12:49 -07:00
Joe Soroka
9b52e16a50
re-added negative-array-size testcase and fixed fix for it
2011-07-22 02:09:28 -07:00
grischka
d7d8458888
Revert "better constant handling for expr_cond"
...
It produced wrong code with one of my test projects.
This reverts commit cd3d1a45f3
.
2011-07-16 15:53:30 +02:00
Thomas Preud'homme
4ccb5662cb
Fix array_test: move params to local vars
...
array_test is declared and called with no parameters but defined with
one parameter. Compilation succeed (definition is after the use so the
compiler consider the declaration) as well as link (the function exist
and has the right name) but running the test segfault on i386 platforms.
This patch moves the parameter to local variable. If the intention was
to call it with an array parameter then feel free to fix it again.
2011-07-12 15:10:59 +02:00
Joe Soroka
c71798c376
handle arrays with a flexible member but no initializer
2011-07-11 00:18:36 -07:00
Joe Soroka
cd3d1a45f3
better constant handling for expr_cond
2011-07-11 00:00:47 -07:00
Joe Soroka
38756b506f
fix self-referential token pasting
2011-07-08 02:51:06 -07:00
Joe Soroka
d01f65ef93
fix end-of-scope for self-referential macros
2011-07-08 00:55:34 -07:00
Thomas Preud'homme
eb152022a0
make test work when LIBTCC1 not defined
...
Make libtest depends on LIBTCC1 instead of ../libtcc1.a and define
LIBTCC1 to $(TOP)/$(LIBTCC1) if LIBTCC1 is defined
2011-05-17 23:30:32 +02:00
Joe Soroka
cb2fa5eab9
VLA fix [1/3]: added testcase demonstrating VLA bug
2011-04-08 01:07:17 -07:00
Joe Soroka
c94f80502e
VLA bcheck works via bound alloca; add test, remove warning
2011-04-06 15:27:45 -07:00
Joe Soroka
ace0f7f259
re-apply VLA by Thomas Preud'homme
2011-04-06 09:17:03 -07:00
Joe Soroka
4062d787da
sizeof(struct with "flexible array member") is wrong
2011-03-18 17:45:43 -07:00
Joe Soroka
0b8aa909a3
fix c99 for-loop init decl scope (thanks: grischka)
...
see http://lists.nongnu.org/archive/html/tinycc-devel/2011-03/msg00005.html
2011-03-08 15:19:54 -08:00
Joe Soroka
e23194a1fa
support c99 for-loop init decls
2011-03-07 11:28:31 -08:00
Joe Soroka
4fbe3cda33
use new weaken_symbol() to fix another real-world corner case
2011-03-07 01:05:09 -08:00
Joe Soroka
0f0c2d9c02
weak redefinition of a symbol should weaken the original
2011-03-07 00:25:27 -08:00
Joe Soroka
38cbb40e90
__typeof(t) should not include storage modifiers of t
2011-03-06 22:32:35 -08:00
Joe Soroka
3beb383236
handle post-asm-label attributes on variables
2011-03-03 00:55:02 -08:00
Joe Soroka
823f832630
tcc: fix weak attribute handling
2011-03-02 13:31:09 -08:00
Joe Soroka
1b85b55059
i386-asm: support "pause" opcode
2011-02-24 09:38:13 -08:00
Joe Soroka
bec84fa00a
tccasm: support alternate .type syntaxes
2011-02-24 09:24:02 -08:00
Joe Soroka
15b8a57096
tccpp: treat gas comments in .S files as raw text, not tokens
2011-02-23 15:13:08 -08:00
Jaroslav Kysela
85642f887c
fix warning for tcctest.c introduced with my last commit
2011-02-22 13:55:21 +01:00
Jaroslav Kysela
ab73c9bc4e
fix another static struct init issue (arrays with unknown size at end)
2011-02-22 12:15:45 +01:00
Jaroslav Kysela
dbefae52b0
Fix complex static initializers (handle additional '}' and '{' brackets)
...
- added an example to test suite
- the "warning: assignment discards qualifiers from pointer target type"
is present but harmless
2011-02-22 12:15:44 +01:00
Thomas Preud'homme
db560e9439
Revert "Implement C99 Variable Length Arrays"
...
This reverts commit a5a50eaafe
.
2011-02-05 02:33:46 +01:00
Thomas Preud'homme
4b8470f3ae
Revert "Disable C99 VLA when alloca is unavailable."
...
This reverts commit e3e5d4ad7a
.
2011-02-05 02:33:45 +01:00
Thomas Preud'homme
e3e5d4ad7a
Disable C99 VLA when alloca is unavailable.
...
* Disable C99 VLA detection when alloca is unavailable and protect the
new reference to TOK_alloca in decl_initializer in order to compile
and run for architecture without working alloca.
Not all code of C99 VLA is commented as it would required many ifdef
stanza. Just the detection is commented so that VT_VLA is never set
any type and the C99 VLA code is compiled but never called. However
vpush_global_sym(&func_old_type, TOK_alloca) in decl_initializer needs
to be protected by an ifdef stanza as well because it uses TOK_alloca.
* include alloca and C99 VLA tests according to availability of
TOK_alloca instead of relying on the current architecture
2011-02-04 15:24:48 +01:00
Thomas Preud'homme
a5a50eaafe
Implement C99 Variable Length Arrays
...
Implement C99 Variable Length Arrays in tinycc:
- Support VLA with multiple level (nested vla)
- Update documentation with regards to VT_VLA
- Add a testsuite in tcctest.c
2011-02-04 02:22:25 +01:00
Joe Soroka
b88677454b
tcctest: plugged memleak (was polluting valgrind reports)
2011-02-01 16:05:57 -08:00
Joe Soroka
0d9376da70
tccasm: accept bracketed offset expressions
2011-02-01 15:53:48 -08:00
Joe Soroka
47b4cf22cd
tccasm: accept "fmul/fadd st(0),st(n)" (dietlibc ipow/atanh)
2011-02-01 15:49:37 -08:00
Joe Soroka
87d84b7cb8
tccasm: allow one-line prefix+op things like "rep stosb"
2011-02-01 15:37:58 -08:00
Joe Soroka
a25325e9be
tccasm: define __ASSEMBLER__ for .S files, like gcc does
2011-02-01 15:26:21 -08:00
Joe Soroka
75c6695932
tccpp: fix bug in handling of recursive macros
2011-02-01 13:23:40 -08:00
Joe Soroka
cf08675702
weak definitions overrule non-weak prototypes
2011-02-01 09:41:03 -08:00
Joe Soroka
4d5105c8f1
support weak attribute on variables
2011-02-01 00:37:53 -08:00
Joe Soroka
6839382480
asmtest: avoid testing against complex nop alignment in gas
...
.align #,0x90 in gas ignores the 0x90 and outputs any kind
of nop it feels like. the one avoided by this patch is a 7
byte nop, which gas has been doing since at least 1999:
http://sourceware.org/ml/binutils/1999-10/msg00083.html
In order to match what gas does, we would need to make
code alignment target-specific, import a lot of code, and
face the question: exactly which gas {version,target,tune}
combo are we trying to match? see i386_align_code in:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.c?annotate=1.460&cvsroot=src
The smart noppery is turned on via the special casing of 0x90
at line 438 in md_do_align in:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.h?annotate=1.1&cvsroot=src
2011-01-23 16:46:24 -08:00
Joe Soroka
2047f88334
i386-asm: accept retl as a synonym for ret
2011-01-21 01:35:28 -08:00
Joe Soroka
f43fafc680
accept multiple comma separated symbols for .globl/.global directives, like gas does
2011-01-20 02:00:50 -08:00
Shinichiro Hamaji
0ed7ba3f5e
Support struct arguments with stdarg.h
...
- add __builtin_va_arg_types to check how arguments were passed
- move most code of stdarg into libtcc1.c
- remove __builtin_malloc and __builtin_free
- add a test case based on the bug report
(http://www.mail-archive.com/tinycc-devel@nongnu.org/msg03036.html )
2010-12-28 19:32:40 +09:00
Shinichiro Hamaji
83f0a7b6f8
Test va_copy in tcctest.c
2010-12-28 17:53:56 +09:00
Shinichiro Hamaji
f2d7998a96
Copy tcclib.h to tests directory so GCC uses its own headers.
...
86ffc48129
removed this cp command. However, it was necessary to pass tests on x86-64
because include/stdarg.h is different from GCC's definition on x86-64.
2010-12-07 03:04:45 +09:00
grischka
86ffc48129
make: new lib/Makefile for libtcc1.a on more platforms
...
win32/64 cross-compilers now build libtcc1.a and install it
together with the windows headers in a 'win32' sub-directory
of TCCDIR.
2010-12-04 16:47:08 +01:00
Shinichiro Hamaji
c31dc7aa0c
Fix casts from 32bit integer types to 64bit integer types.
...
This bug was reported in
http://lists.gnu.org/archive/html/tinycc-devel/2010-08/msg00050.html
In this case, we should not emit any code when we cast from VT_FUNC to VT_PTR.
2010-08-31 08:35:31 +09:00
Shinichiro Hamaji
1f6781f0ee
Fix alignment around struct for SSE.
...
- Fix a wrong calculation for size of struct
- Handle cases where struct size isn't multple of 8
- Recover vstack after memcpy for pushing struct
- Add a float parameter for struct_assign_test1 to check SSE alignment
2010-08-27 02:32:19 +09:00
Thomas Preud'homme
dc265feb63
Fix bashims in configure and gcctestsuite.sh.
...
configure and gcctestsuite.sh shell scripts contains bashisms although being
bourne shell script. This patch fixes the following bashisms:
* Use of $RANDOM variable (replaced by reading in /dev/urandom)
* Use == in tests instead of just =
* Use $[] for arithmetic computation istead of $(())
2010-05-26 14:08:29 +02:00
grischka
903b6001e7
update Makefiles
2009-12-20 20:34:35 +01:00
grischka
8bbde91f62
tcc_relocate: revert to 0.9.24 behavior
2009-12-19 22:16:23 +01:00