Jonas Maebe
abfd975571
TCGParaLocation: remove alignment gap
2022-06-04 22:26:40 +02:00
Jonas Maebe
dc1e0a6bb3
tllvmcallpara: turned into object and added convenience methods
2022-06-04 22:26:40 +02:00
Jonas Maebe
fe0048bcec
llvm: changed llvm_metadatatype from untyped pointer to undefineddef
...
That matches its meaning better, as it should not result in type conversions.
E.g. some kinds of metadata parameters expect a "type register" parameter such
as "metadata i32* %reg.3"
2022-06-04 22:26:40 +02:00
Jonas Maebe
aa43441ac9
llvm: replaced boolean fields in tllvmcallpara with a set
2022-06-04 22:26:40 +02:00
Jonas Maebe
573b2554f4
llvminfo: fix copy/paste error in llvm 14 comment
...
Spotted by @Alexey-T1
2022-06-04 22:26:40 +02:00
mattias
13ebe495df
fcl-passrc: fixed parsing property hints
2022-06-04 21:09:40 +02:00
mattias
36d7b53437
fcl-passrc: resolver: fixed emit hints for used units
2022-06-04 20:40:32 +02:00
Jonas Maebe
a45e5e7ab6
llvm: version 14.0 support
2022-06-04 13:34:09 +02:00
mattias
309d8a90fd
fcl-passrc: fixed searching overload in mode delphi
2022-06-04 10:52:20 +02:00
Jonas Maebe
49ad3b0d2c
msg*.inc: regenerated
2022-06-04 10:23:28 +02:00
Jonas Maebe
3ef0db2404
LLVM: list supported LLVM/Xcode versions
...
Use the -i or -il command line parameter
2022-06-04 10:22:19 +02:00
Jonas Maebe
591c1b0177
llvm: added support for newer Xcode toolchains
...
Based on https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_13.x_(since_SwiftUI_framework)_2
2022-06-04 09:43:39 +02:00
florian
a05aa25aad
* Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve #39738
2022-06-03 22:54:18 +02:00
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