Commit Graph

65369 Commits

Author SHA1 Message Date
Jonas Maebe
dcf6063dc3 llvm: version 13.0 support 2022-06-03 21:46:23 +02:00
Jonas Maebe
1b06599e82 llvm: version 12.0 support 2022-06-03 21:46:23 +02:00
Pierre Muller
762057f46d Fix compilation of 32-bit powerpc compiler 2022-06-03 11:45:36 -07:00
Pierre Muller
dbbf7e7f3b Add several increfs to avoid troubles on AIX target OS 2022-06-03 11:28:15 -07:00
mattias
8499fb34b2 fcl-passrc: fixed method override modifier inherits overload modifier 2022-06-03 09:17:38 +02:00
florian
ea659cbc20 * "fast lane" code and comment fixed 2022-06-02 22:47:58 +02:00
Pierre Muller
41dbedfe22 Fix compilation ofrtl/nds/classes.pp unit 2022-06-02 17:54:59 +00:00
florian
f1b166d6b8 * zero is a valid Risc-V register alias 2022-06-01 22:34:51 +02:00
florian
ec3a04da9b + forgotten pseudo-instructions added 2022-06-01 22:31:26 +02:00
marcoonthegit
9e70f49745 * fix missing ifdef for the non win32/64/unix targets.
* also do watcom.
2022-06-01 16:56:02 +02:00
marcoonthegit
e5ac0b2689 * anonymous method overloads for synchronize/queue. 2022-06-01 13:54:06 +02:00
marcoonthegit
d38c881828 * add IEquatable<T>, requested on forum. 2022-06-01 11:00:56 +02:00
Pierre Muller
430f1910ed Fix compliation error with -Oodfa option as reported by Gareth 2022-06-01 00:35:55 +02:00
Pierre Muller
0e142c00cc Disable finalisation code fro LLVM compiler to avoid interface finalisation troubles 2022-06-01 00:19:46 +02:00
Sven/Sarah Barth
a27bc236a0 * fix #39742: when assigning a function to a function reference it's not the function itself that needs to be checked to be captureable, but instead what it captures (this applies for both the non-generic and the generic case)
+ added tests
2022-05-31 23:16:41 +02:00
Sven/Sarah Barth
0874521a78 + add tests to ensure that the assignment of nested function variables to function references is forbidden 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
883cc6d697 + add tests that ensure that the overload selection works correctly when functions, methods or nested functions are assigned when overloads for function references are involved as well 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
2372a06926 * fix #39740: consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
+ added test
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
492754ecca * the check for nested procvars is now done during the conversion in capturer_add_procvar_or_proc so loosen the check in proc_to_funcref_equal_internal 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
3b7842c30e * ensure that a nested function variable can not be assigned to a function reference 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
2688834265 * regenerate msg{idx,txt}.inc 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
ea8e3cfc37 + add an error message that a nested function variable can not be assigned to a function reference 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
4361e36ce0 * make proc_to_funcref_conv publicly available 2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
7bb1b12b4f + add a mode Delphi equivalent for tanonfunc56 to check whether overload selection works correctly 2022-05-31 22:50:13 +02:00
florian
eaeb8b70ff + added Risc-V register information file generation to the compiler Makefile
* more stringent naming of register file information for Risc-V
2022-05-31 22:38:30 +02:00
Pierre Muller
2cdbdcd5c5 Manually increase refs of newly created labelsymbol in insertpcrelativedata 2022-05-31 14:26:00 +00:00
Pierre Muller
f27b55e9b2 Also add a comment when a label has been optimized out when compiled DEBUG_LABEL 2022-05-31 13:00:04 +00:00
Pierre Muller
ad72542e9e Fix compilation of sparc compiler with -dDEBUG_ALL_OPT 2022-05-31 11:47:24 +00:00
Sven/Sarah Barth
5a680f0148 * fix #39745: the conversion from ordinals to pointer types in mode Delphi is not allowed for a void type (happens when using a typecast to convert a method without parameters to a function reference)
+ added test
2022-05-30 23:05:45 +02:00
florian
252707a873 + "rescued" mkrvreg.pp from old svn data 2022-05-30 21:12:37 +02:00
florian
ae457a18ad * unified Risc-V 32 and 64 register data file 2022-05-30 21:10:34 +02:00
florian
5d6ef0f70c * cleanup 2022-05-30 18:40:35 +02:00
Jonas Maebe
59f293711a function references: make names of interface methods valid Pascal identifiers
On high level targets, and on PowerPC/PowerPC64, interface method thunks are
implemented using internally-generated Pascal wrappers, so the method names
need to be valid Pascal identifiers.

Additionally, that wrapper code uses the procsym's realname, so also
update the realname field when changing the name of anonymous methods.
2022-05-29 23:07:13 +02:00
Sven/Sarah Barth
29cfa3b225 * ensure that the VMT for the function reference interface is generated correctly, but for this the invokedef needs to be copied without hidden parameters (and handle_calling_convention will be done by the VMT builder as well) 2022-05-29 14:44:11 +02:00
Sven/Sarah Barth
dadc10658c * set the correct symtable level for the invoke procdef 2022-05-29 14:44:11 +02:00
Jonas Maebe
60b0bc5535 read_record_fields: fix overflows of variant record size variables
Could happen in case of > 32 bit variant parts, or variant parts at offsets
> 32 bit offsets.

Fixes webtbs/tw9039c with a compiler compiled with -Cr
2022-05-29 13:33:27 +02:00
Jonas Maebe
a19deace45 llvmdbg: fix overflows for aggregates > 2^61 bytes
LLVM does not support aggregates larger than that at all, because internally
it stores all sizes in bits in an uint64. Their rationale for not having
special support for that is that there is no hardware with full 64 bit VM
address space anyway. So truncate our size emissions in debug info also to
that.
2022-05-29 13:33:27 +02:00
Jonas Maebe
9e7895575e tarraydef.elecount: fix overflow detection
It did not trigger in case of an array[0..high(asizeint)]. Fixes compilation
of webtbs/tw9039[ab] with a compiler built with range checking enabled.
2022-05-29 13:33:27 +02:00
Jonas Maebe
743d7c50d0 do_set: immediately exit in case of range error
Prevents run time error in case of a compiler compiled with range checks
enabled (webtbf/tw10890a)
2022-05-29 13:33:27 +02:00
Jonas Maebe
70908b1449 llvm: support for adding/subtracting constants to pointers in typed constants
Fixes webtbs/tw34027 for llvm
2022-05-29 13:33:27 +02:00
Jonas Maebe
573f2c20d7 taddnode.cmp_of_disjunct_ranges: fortify in case of programs with errors
Fixes compilation of webtbf/tw3116 with a compiler compiled with -Cr
2022-05-29 13:33:27 +02:00
Jonas Maebe
8c67a4370b rautils: don't interpret ".L3" as potentially meaning "unitx.identifier"
Fixes compilation of webtbs/tw10641.pp with a compiler compiled with
range checking
2022-05-29 13:33:27 +02:00
florian
390084d59e * tests fixed 2022-05-29 10:37:24 +02:00
Marcus Sackrow
638de87a5a AThreads: prevent deadlock for event set before waited 2022-05-28 22:46:50 +02:00
florian
4556cb35d1 + completed Risc-V 64 pseudo instructions
* typo fixed
2022-05-28 21:22:11 +02:00
florian
6a00f9f403 * unified Risc-V 32 and 64 cpubase.pas 2022-05-28 21:15:53 +02:00
florian
09587d0c1b * standard Risc-V pseudo instructions for Risc-V 32 completed 2022-05-28 20:47:58 +02:00
florian
b29b81ae7b * pseudo instructions for flag handling 2022-05-28 20:25:28 +02:00
florian
1c7626715d * the stack pointer on Risc-V points always at the last used position, resolves #39739 2022-05-28 20:10:49 +02:00
Nikolay Nikolov
34ebeb15ed * pass the option to create shared, imported memory to the linker, in case the module is compiled with -CTwasmthreads
Note that this breaks running programs compiled with -CTwasmthreads with "wasmtime run --wasm-features threads", but
  there's not much we can do about that, since shared memory is required for threading, and wasmtime still doesn't
  support it.
2022-05-28 20:06:34 +03:00