Commit Graph

1051 Commits

Author SHA1 Message Date
1b0f42f8ad update documentation to reflect VLA changes 2011-04-09 23:41:16 -07:00
1b8c094f39 remove no-longer-necessary naive fix for vla vstack leak 2011-04-09 23:04:01 -07:00
c85f77de70 prevent internal segfault on apparent VLA at file scope 2011-04-09 22:59:35 -07:00
1446b543ae VLA fix [3/3]: store VLA sizeofs in anonymous runtime stack vars 2011-04-09 22:52:25 -07:00
7c7ca3c6aa VLA fix [2/3]: removed VT_ARRAY from VT_VLA types
A VLA is not really an array, it's a pointer-to-an-array.
Making this explicit allows us to back out a few parts
of the original VLA patch and paves the way for the next
part of the fix, where a VLA will be stored on the runtime
stack as a pointer-to-an-array, rather than on the compile-
time stack as a Sym*.
2011-04-08 01:09:39 -07:00
cb2fa5eab9 VLA fix [1/3]: added testcase demonstrating VLA bug 2011-04-08 01:07:17 -07:00
174d61a56e move a comment to its correct location 2011-04-08 00:46:32 -07:00
b714af0405 add naive workaround for VLA vstack leak 2011-04-08 00:44:01 -07:00
6eb97c70b7 VLA leaks vstack. added warning to detect future leaks 2011-04-08 00:41:55 -07:00
c94f80502e VLA bcheck works via bound alloca; add test, remove warning 2011-04-06 15:27:45 -07:00
810aca9e68 clarify post_type() VT_STORAGE handling by moving it out 2011-04-06 12:08:50 -07:00
ace0f7f259 re-apply VLA by Thomas Preud'homme 2011-04-06 09:17:03 -07:00
17571298f3 handle c99 flexible array members less hackily 2011-03-18 17:50:42 -07:00
06a7c415a9 revert complicated & broken flexible array member handling 2011-03-18 17:47:35 -07:00
4062d787da sizeof(struct with "flexible array member") is wrong 2011-03-18 17:45:43 -07:00
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
9ff91d4c6f clarify support for functions returning an array (try#2)
fixes first attempt:
http://repo.or.cz/w/tinycc.git/commitdiff/31fe1cc
2011-03-08 15:12:09 -08:00
91163f167e revert last commit. fails "make test"
test target in Makefile does not depend on tcc.
i'm not sure why, but i can think of at least one
good reason.  in my local tree I have it modified
to do so, but somehow inadvertently reverted that
so when i did "make test" before committing, it
didn't actually test my changes.  sorry.
2011-03-08 14:58:02 -08:00
31fe1cc62b clarify support for functions returning an array
previously, tcc would accept a prototype of a function returning
an array, but not giving those functions bodies nor calling them.
it seems that gcc has never supported them, so we should probably
just error out... but it's possible that someone already using
tcc includes some header that contains an unused prototype for
one, so let's continue to support that.
2011-03-08 14:13:08 -08:00
5eb82755db support c99 for-loop init decls (2nd attempt) 2011-03-08 13:36:04 -08:00
7fc2eee55c partially revert e23194a
see http://lists.nongnu.org/archive/html/tinycc-devel/2011-03/msg00002.html
2011-03-08 13:22:48 -08:00
b3a8eed49e revert last 3 commits. will find better way. 2011-03-08 12:56:13 -08:00
2d292e69a1 small change to previous whitespace-only commit 2011-03-08 09:26:36 -08:00
545a37b306 some indentation made prev patch pretty; removed it 2011-03-08 01:59:50 -08:00
89059f94c0 refactor post_type() to be explicit about its recursion 2011-03-08 01:47:31 -08:00
772b302187 added a note clarifying post_type() recursion
some ancient pre-K&R C allows a function to return an array
and the array brackets to be put after the arguments, such
that "int c()[]" means the same as "int[] c()"
see:
http://llvm.org/bugs/show_bug.cgi?id=2399
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#38703
2011-03-08 01:33:17 -08:00
585027aa96 tccelf: allow multiply defined weak symbols 2011-03-07 12:18:54 -08:00
e23194a1fa support c99 for-loop init decls 2011-03-07 11:28:31 -08:00
4fbe3cda33 use new weaken_symbol() to fix another real-world corner case 2011-03-07 01:05:09 -08:00
8bcb2ae1b2 factor out symbol weakening into new function 2011-03-07 01:02:23 -08:00
0f0c2d9c02 weak redefinition of a symbol should weaken the original 2011-03-07 00:25:27 -08:00
38cbb40e90 __typeof(t) should not include storage modifiers of t 2011-03-06 22:32:35 -08:00
5d55647a3c tccpp: fix problem in preprocess_skip with empty #
for example:

   #ifdef stuff
   # /* some comment */
   #endif
2011-03-06 19:13:12 +01:00
c27e76aa2a unlink outfile first
file mode problem if the outfile already exists
2011-03-03 21:09:18 +08:00
c93eca4fe4 tccgen: handle __attribute((alias("target"))) 2011-03-03 01:58:45 -08:00
ce8c1886a5 collapse branch in decl(), making way for next patch 2011-03-03 01:07:36 -08:00
3beb383236 handle post-asm-label attributes on variables 2011-03-03 00:55:02 -08:00
823f832630 tcc: fix weak attribute handling 2011-03-02 13:31:09 -08:00
684723488d Replace comment by a blank
- fix my prev commit:
	put declaration above statements to stay c89 compatible
- replace commit by a blank
        #define con(a, b) a/**/b
	this should yield a b, not ab
2011-03-01 09:19:43 +08:00
185fba4189 tcc -E: append a ' ' after subst
We need a ' ' after subst of m in the following case

    #define m(name,r)  name ## r
    #define m0(a,b,c) int m(a,b)   c
    #define m1(a,b,c) int m(a,b)c
    m0(a, b, c);
    m1(a, b, c);
2011-02-27 10:15:15 +08:00
1b85b55059 i386-asm: support "pause" opcode 2011-02-24 09:38:13 -08:00
bec84fa00a tccasm: support alternate .type syntaxes 2011-02-24 09:24:02 -08:00
15b8a57096 tccpp: treat gas comments in .S files as raw text, not tokens 2011-02-23 15:13:08 -08:00
85642f887c fix warning for tcctest.c introduced with my last commit 2011-02-22 13:55:21 +01:00
ab73c9bc4e fix another static struct init issue (arrays with unknown size at end) 2011-02-22 12:15:45 +01:00
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
a3ebdd0aeb tccpe: support leading underscore for symbols
To make this the default, enable this line in libtcc.c:tcc_new:

    #if defined(TCC_TARGET_PE) && 0
        s->leading_underscore = 1;

and then recompile tcc and also libtcc1.a
2011-02-13 17:44:12 +01:00
11b2d33523 Add support of asm label for variables.
Add support for asm labels for variables, that is the ability to rename
a variable at assembly level with __asm__ ("newname") appended in
its declaration.
See http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Asm-Labels.html for more
details.
2011-02-09 00:12:57 +01:00
32a682b88f Fix fct asm label: only valid for declaration
- Fix function assembly label mechanism introduced in commit
  9b09fc376e to only accept alternative
  name for function declaration.
- merge the code with the one introduced in commit
  264a103610.
- Don't memorize token for asm label but directly the asm label.
2011-02-09 00:12:57 +01:00
c23400278a Fix incorrect use of basic type as bitflags.
Fix incorrect use of basic types as bitflags and inefficiency in commit
cf36410e30
2011-02-07 23:46:20 +01:00