| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- added an example to test suite
- the "warning: assignment discards qualifiers from pointer target type"
is present but harmless
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
- Fix function assembly label mechanism introduced in commit
9b09fc376e8c212a767c875e71ca003e3b9a0d2e to only accept alternative
name for function declaration.
- merge the code with the one introduced in commit
264a103610e3ee86b27b8cbb0e4ec81cd654d980.
- Don't memorize token for asm label but directly the asm label.
|
| |
|
|
|
| |
Fix incorrect use of basic types as bitflags and inefficiency in commit
cf36410e30b3c18be6c556158b2d0d0938f5b77d
|
| |
|
|
|
|
|
|
|
| |
Error out on static function without file scope and give an explaination
to the user
This is a rewrite of e9406c09a3212ab3f120412a6bbdacb0cdd25deb but
considering problems raised about static local function pointers in
632ee5a54076d417971ae7fa8a0c154441a71499.
|
| | |
|
| |
|
|
| |
This reverts commit a5a50eaafeea0d3ca47bc8fb6baf983743470c60.
|
| |
|
|
| |
This reverts commit 7f00523e2e1938fc3558164521fe3ecefd9e1747.
|
| |
|
|
| |
This reverts commit af26ac56bfc584b70e20158e67f7035024076ec8.
|
| |
|
|
| |
This reverts commit e3e5d4ad7a475e30ea13ad1ba9f23e6210d5d431.
|
| | |
|
| |
|
|
|
| |
crash was triggered by numbers etc. as unexpected token, i.e.
everything that requires additional information with the token.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
| |
TOK_alloca is now available on x86-64 so make put definition of
TOK_alloca outside the BCHECK conditional macro definition but test if
arch is i386 or x86-64. This makes C99 VLA works (understand compile) on
x86-64.
|
| | |
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
Correctly attribute the patch bringing support for Debian GNU/kFreeBSD
kernels to Pierre Chifflier.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.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
|
| | |
|
| |
|
|
| |
gas does
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem was partially fixed by Henry in the following patch:
tcc.c: skip -lpthread when -c option specified
But that patch had one brawback: it is sensitive to argument order,
as decision is taken during commandline parsing:
$ tcc -c a.c -o a.o -pthread # 1. works fine
tcc: error: file 'a.c' not found
$ tcc -pthread -c a.c -o a.o # 2. blows
tcc: error: cannot specify libraries with -c
This patch fixes case 2.
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
|
| |
|
|
| |
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
|
| |
|
|
| |
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
|
| |
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
| |
The ABI (http://www.x86-64.org/documentation/abi.pdf) says
"The size of each argument gets rounded up to eightbytes"
|
| | |
|
| |
|
|
| |
We don't need r_addend for addresses in PLT.
|
| |
|
|
| |
R_X86_64_PLT32 for .so doesn't need DLL relocation.
|
| |
|
|
|
|
|
|
|
| |
- r_addend should be applied for PLT entries as well
- R_X86_64_PLT32 should be handled just like R_X86_64_PC32
- spec says GLOB_DAT and JUMP_SLOT don't need r_addend (not tested)
http://www.x86-64.org/documentation/abi.pdf
Now we can -run ELF objects generated by GCC.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|