- 23 Mar, 2023 2 commits
-
-
Detlef Riekenberg authored
Value 0 and values >2GB where printed wrong during tests with yarpgen (v1) Starting the output with a hashtag make it compatible to TAP -- Regards ... Detlef
-
Detlef Riekenberg authored
These extensions where used by other compiler to generate different code on old cpu's (arm and x86 before pentium/pentiumpro) to prevent processor exceptions / very high delays when accessing an unaligned pointer. -- Regards ... Detlef
-
- 18 Mar, 2023 2 commits
-
-
herman ten brugge authored
-
Avi Halachmi (:avih) authored
Use old (=no) if autodetect succeeded and osx ver <= 10, else new. Override is possible, and now also documented at ./configure --help.
-
- 13 Mar, 2023 1 commit
-
-
Michael Matz authored
if we include standard headers on glibc-based systems then we can't use '__attribute__' (those are defined away for unknown compilers) but must use '__attribute' (or #undef that token).
-
- 12 Mar, 2023 2 commits
-
-
grischka authored
tccgen.c: - just track local_stack for small scopes (can't declare variables) - fix a vla problem with nested scopes - move debug N_L/RBRAC into curly braced block Also: - tccpp.c: move 'label_...' functions to tccgen.c - tccpp.c: let get_tok_str() say "<no name>" for anonymous symbols - tcctest.c: let __pa_symbol() work for memory > 2GB - 119_random_stuff.c: revert strtoll test (no reason to test libc) - tccdefs.h/tcctest.c: enable bit fncs for _WIN32 - Makefile: - use i686-linux-gnu instead of i386-linux-gnu for cross-i386 - update 'make help' - revert umplicit 'make all' with 'make install' (but print warning)
-
grischka authored
instead in vcheck_cmp(), pass the CODE_OFF_BIT to generators unless other nocode purposes are set. This reverts commit cad87395. Also in 128_run_atexit.c: avoid line output disorder which may happen on windows when tcc itself and runned code are using two different printf implementations and tcc would print the "[Returns 1]" above any output from the runned test.
-
- 11 Mar, 2023 4 commits
-
-
Detlef Riekenberg authored
We have that define already in tcc.h and changing the define in tcc.h breaks compilation of tcc without this fix. -- Regards ... Detlef
-
herman ten brugge authored
The generated code by yarpgen failed. I traced the problem to expr_landor. The problem was that nocode_wanted was removing too much code. See also testcase 33.
-
herman ten brugge authored
The yarpgen test code uses very complex expressions.
-
herman ten brugge authored
The problem was that enums can also be present in vset_VT_JMP. Also see testcode.
-
- 10 Mar, 2023 3 commits
-
-
Michael Matz authored
the optimization of a ternary op with two boolean operands had the same problem (as in the last commit) of loosing the type.
-
Michael Matz authored
the casted type was lost when a delayed bool was finally converted to a value. See testcase, in the wrong case the '(unsigned int)' cast was ignored, and hence the division was signed reulting in -1 instead of the proper 0x7fffffff.
-
herman ten brugge authored
The following code: typedef struct { unsigned int a __attribute__((nodebug)); unsigned int b; unsigned int : 32; unsigned int c; } tst; Supresses a and also suppresses bitfield padding. So debugger shows only b and c in above example.
-
- 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.
-