florian
59811090e1
* captured variables cannot be in registers typically
2022-08-01 22:59:23 +02:00
Sven/Sarah Barth
8d90cd3e64
* fix #39826 : correctly handle function references that are part of generics/specializations, but are not generics/specializations themselves
...
+ added test
2022-07-15 16:32:02 +02:00
florian
98ec81896e
* do not throw messages on potentially uninitialized internal symbols, resolves #39744
2022-06-15 23:30:33 +02:00
Pierre Muller
430f1910ed
Fix compliation error with -Oodfa option as reported by Gareth
2022-06-01 00:35:55 +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
3b7842c30e
* ensure that a nested function variable can not be assigned to a function reference
2022-05-31 22:50:14 +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
Sven/Sarah Barth
0c9b622a74
* fix compilation with DEBUG_NODE_XML defined
2022-05-27 07:36:50 +02:00
Sven/Sarah Barth
f73fc7d566
* fix #39736 : ensure that the capturer object and any converted function reference interface are considered used
...
+ added test
2022-05-27 07:24:46 +02:00
Sven/Sarah Barth
7974f39522
* implement assignment of procedure and method variables and routines (global, instance and nested) to function references
2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
9aac622dc9
+ add necessary core functions and functionality to implement capturing of variables
...
Based on code by Blaise.ru
2022-05-26 21:44:22 +02:00
Sven/Sarah Barth
2ed2c21313
+ add support for parsing function references
2022-05-26 21:42:59 +02:00
Pierre Muller
5acd7a7b83
Rename tsymtable.insert and delete methods to insertsym ands deletesym
2022-05-03 23:00:28 +02:00
svenbarth
4da6465d05
* correctly set the generic related defoptions for an outlined procdef
...
git-svn-id: trunk@45645 -
2020-06-13 18:42:26 +00:00
svenbarth
b1ee29c836
* fix for Mantis #30205 : (adjusted) patch by Do-wan Kim to only use the default calling convention for exception handlers
...
+ added test
git-svn-id: trunk@41277 -
2019-02-10 11:26:46 +00:00
Jonas Maebe
91d5457b38
* moved around/replaced the following procedures to stop nflw from depending
...
on pdecsub (node units should not depend on parser units):
o maybe_add_public_default_java_constructor()
o handle_calling_convention()
o create_finalizer_procdef() (replaced with create_outline_procdef())
o insert_record_hidden_paras()
o handle_calling_convention()
o proc_add_definition()
o build_parentfpstruct()
o maybe_guarantee_record_typesym()
o get_first_proc_str()
* factored out the creation of a procinfo for a nested procdef based on a
subnodetree of the current procdef into tprocinfo.create_for_outlining()
git-svn-id: trunk@40773 -
2019-01-05 16:26:33 +00:00