- 09 Mar, 2023 4 commits
-
-
Michael Matz authored
the code in expr_cond save nocode_wanted around some parts of expression evaluation, but at the wrong spots. If the evaluation of the condition itself (e.g. in the testcase the first whole ternary expression) resulted in CODE_OFF, then that was saved, and restored before return, even if in-between codegen would have CODE_ON'ed already. Thus the whole CODE_OFF state bled out to outside the expression evaluation and also disabled the whole if-block. Found by yarpgen v1 (seed 64).
-
herman ten brugge authored
Should have used 'long long' instead of 'long' for 32 bits targets.
-
herman ten brugge authored
Update target all before installing
-
herman ten brugge authored
The init code did not work for padding bitfields with size 32 and 64.
-
- 07 Mar, 2023 1 commit
-
-
Michael Matz authored
we activate code (CODE_ON) only when the target labels are used, which doesn't happen during nocode_wanted regions. So, we cannot just switch off code either during nocode_wanted regions, nothing would switch it on again (except in the happy coincidences when we outright save/restore nocode_wanted). See the testcase for one example, reduced from code generated by yarpgen: in ext = (xxx || 1) // #1 || ((xxx && 1) || 1) // #2 code is first suppressed in #1 normally, then (before this commit) was suppressed via CODE_OFF during #2 (via indirect gjmp), then the suppression from #1 was undone, but nothing undoes the suppression from #2 anymore as everything therein was generated while nocode_wanted was active. So, we would either need to save/restore nocode_wanted around some more expressions, activate CODE_ON also with unused labels (breaks some optimizations we want), or deactivate CODE_OFF only when not already in nocode_wanted state. This does the latter.
-
- 05 Mar, 2023 1 commit
-
-
Petr Skocik authored
The C standard has required this since at least C99. A new scope should also be created for ifs, but that's currently breaking tests2/122_vla_reuse.
-
- 23 Feb, 2023 1 commit
-
-
Brian Callahan authored
need to use getthrid() directly in lib/bcheck.c
-
- 22 Feb, 2023 1 commit
-
-
Michael Matz authored
Sym.sym_scope and Sym.f (FuncAttr) share space, so blindly setting one clobbers the other. Right now this only leads to missing errors on incompatible typedefs (see testcase), which this commit fixes. But it points to a larger problem: Generally we can only manipulate Sym.f for anonymous and field symbols, not for anything that has a top-level name (basically any proper decl), because the latter use sym_scope. Luckily the functions type always contains an anonymous symbol (in sym->type.ref), so we can use that. But some of the functions attributes actually _do_ apply to the decl, not the type (e.g. always_inline), so we still have a problem possibly, when we update an pre-existing type that may already be shared with another decl. Would need untangling and perhaps using accessor functions that check that Sym.f and Sym.sym_scope aren't used for the same symbol.
-
- 03 Feb, 2023 2 commits
-
-
Detlef Riekenberg authored
I have a testfile created by YARPGen (seed=9), which displayed a negative bss size without this patch. * tcc needs also a bigger VSTACK_SIZE (i used 512) -- bye bye ... Detlef
-
Detlef Riekenberg authored
I have a testfile created by YARPGen (seed=9), which displayed a negative bss size without this patch. * tcc needs also a bigger VSTACK_SIZE (i used 512) -- bye bye ... Detlef
-
- 17 Jan, 2023 3 commits
-
-
herman ten brugge authored
The last commit was not a problem with macos. The problem was that dwarf version < 5 uses different indexes for files and directories. They start at 1 for dwarf version < 5 and 0 for dwarf version >= 5.
-
Christian Jullien authored
-
noneofyourbusiness authored
-
- 16 Jan, 2023 3 commits
-
-
herman ten brugge authored
Macos has an offset of 1 for DW_LNS_set_file. Also rewrite dwarf_file to not scan list twice and move check for <command line> to this function.
-
herman ten brugge authored
The preprocessor line directive did not result in correct debug info when -g was used. Line directives like: #line 1 "filename" should now work.
-
herman ten brugge authored
-
- 01 Jan, 2023 2 commits
-
-
noneofyourbusiness authored
-
noneofyourbusiness authored
-
- 28 Dec, 2022 2 commits
-
-
herman ten brugge authored
tcc -ar t failed sometimes because the header size was not correct.
-
noneofyourbusiness authored
-
- 27 Dec, 2022 4 commits
-
-
Per Nordlöw authored
-
Per Nordlöw authored
-
herman ten brugge authored
-
herman ten brugge authored
In tcc_load_object_file use unsigned long for size/offset. This avoids strange sizes of sections in case of overflow. The sections that are now larger then 4G may not work. This avoids a hang on macos in realloc.
-
- 26 Dec, 2022 1 commit
-
-
noneofyourbusiness authored
-
- 24 Dec, 2022 1 commit
-
-
Christian Jullien authored
Add -Wl,-install_name macOS clang compatible flag as clang refuses -Wl,-soname. This helps configure scripts using both clang and tcc.
-
- 23 Dec, 2022 2 commits
-
-
herman ten brugge authored
If multiple rpaths are specified then output multiple LC_RPATH load commands instead of one with : seperator.
-
herman ten brugge authored
Changed -1 into -2 for plt_offset,
-
- 22 Dec, 2022 2 commits
-
-
herman ten brugge authored
The problem occurs when a shared library creates a pointer to a function and then the application also uses this function.
-
grischka authored
Also: return all of 'cumofs' (no extra '+' required at caller)
-
- 20 Dec, 2022 2 commits
-
-
herman ten brugge authored
On macos we cannot use the ar because is does not support elf files and then does not generate a symbol table. The solution is to use 'tcc -ar'. The problem now is that some pacages first built an archive with 'tcc -ar c' and later extracts the archive with 'tcc -ar x' and built with this a dylib file. The 'tcc -ar x' failed. So I implemented it. I also added the t option because it was simple to do,
-
herman ten brugge authored
With these option I can now built several packages without problem. There are a lot of options we can add so I tried to implement the minumum. Add the following options: dynamiclib same as -shared flat_namespace default/ignored two_levelnamespace ignored undefined default/ignored install_name name of dynmic lib compatibility_version version dynamic lib current_version version version dynamic lib -Wl options: all_load same as whole-archive force_load same as whole-archive with lib single_module ignored
-
- 18 Dec, 2022 1 commit
-
-
herman ten brugge authored
Export now all global symbols in export trie instead of only text symbols. I wrote too much data into dylib file because I did not check for sk_unknown/sk_discard/sk_uw_info. Simplified code in tccrun.c
-
- 17 Dec, 2022 2 commits
-
-
herman ten brugge authored
Needed when using ...libtcc1-usegcc=yes in lib/Makefile. lib/bcheck.c: Add __clang__ for pragma diagnostic lib/bt-log.c: Add pragma diagnostic as in lib/bcheck.c lib/builtin.c: Add a lot of alias code to allow building with gcc/clang lib/stdatomic.c: Same as lib/builtin.c lib/tcov.c: Avoid clang compiler warning
-
herman ten brugge authored
Macho uses bind/rebase instead of dynsym so disable them for relocate_sections.
-
- 16 Dec, 2022 1 commit
-
-
herman ten brugge authored
Update configure and remove dll=no for Darwin. Also removed dwarf=$dwarf because this is not a config option. In tccelf.c only add __PAGEZERO if stabs and executable. In tccrun.c correct rt_printline_dwarf code for dll. In tests/Makefile disable dlltest with PIC for Darwin because object format of .o file is still in elf. In tccmacho.c add dll support and and rpath support. Corrected trie code. For some reason symbol 'xx' should be after 'xx1'. Corrected weak symbol support for old macho code. Used R_JMP_SLOT instead of R_DATA_PTR in check_relocs.
-
- 13 Dec, 2022 1 commit
-
-
Mathias Krause authored
We already support popcnt, add lzcnt and tzcnt as well. Signed-off-by:
Mathias Krause <minipli@grsecurity.net>
-
- 11 Dec, 2022 2 commits
-
-
herman ten brugge authored
-
herman ten brugge authored
Add new file lib/builtin.c Modify include/tccdefs.h, lib/Makefile to compile it. Update tests/tcctest.c to test it.
-
- 10 Dec, 2022 1 commit
-
-
Petr Skocik authored
This usage has been part of the C grammar since C11 (http://port70.net/~nsz/c/c11/n1570.html#6.7.2.1) and is also supported by gcc and clang.
-