Commit Graph

788 Commits

Author SHA1 Message Date
Michaël Van Canneyt
d3a0a2dddf * Call free instead of destroy 2025-03-21 14:25:19 +01:00
Michaël Van Canneyt
8c5a48da2b * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
Sven/Sarah Barth
50b160651c * fix #38122 in a more correct way than previously done: instead of adjusting the methodpointer node when it's a deref node adjust what value is stored in a temp if a call node is encountered: store the pointer value, not the pointed to value to avoid the reference getting lost
+ added test (note: the test fails at least on x86_64-win64 due to some different reason :/ )
2025-01-04 10:31:26 +01:00
Sven/Sarah Barth
b0675058f5 + add utility function to retrieve a signed integer def for a given integer def 2024-12-12 22:05:14 +01:00
Rika Ichinose
11d16be702 Add a bound parameter to node_count(_weighted). 2024-11-30 20:04:34 +00:00
Rika Ichinose
510a281c3f Use a set instead of boolean arguments to TCallCandidates. 2024-10-27 16:45:35 +00:00
Rika Ichinose
326776c7fa Turn TCallCandidates into an object, make it create FIgnoredCandidateProcs on demand, and outline such adding on demand into dedicated TFPList.AddOnDemand. 2024-10-27 16:45:35 +00:00
florian
4ef30edbd4 * set ra_addr_taken for addr. param only if really needed 2024-10-23 23:04:43 +02:00
florian
00ae194e0a + add printing of all fields of tcallnode in TCallNode.XMLPrintNodeData as well 2024-10-20 11:23:11 +02:00
florian
431d4395ea + print all sub nodes of call nodes 2024-10-19 23:41:46 +02:00
florian
b2892adebf * do not set the addr taken flag for nodes to passed to const/var/out parameters, if
the code of the callee is known and within the callee no address of the parameters
    is taken
2024-10-19 15:15:51 +02:00
Sven/Sarah Barth
04b0dfc812 * fix typo in comment 2024-10-18 17:51:49 +02:00
Alligator-1
9caabdc4e7 Immediately set the capacity 2024-07-08 20:17:11 +00:00
florian
fc6d6c123d * more debug statments removed 2024-04-25 22:50:38 +02:00
florian
ab66440e76 * accidently committed debug statement removed 2024-04-25 22:47:17 +02:00
florian
51f5726343 * (hopefully) more consistent message when the compiler is stopped during showing the help screen, resolves #39455 2024-04-25 22:12:31 +02:00
J. Gareth "Curious Kit" Moreton
2b7df4237b * nf_pass1_done, nf_error, nf_processing and nf_do_not_execute
have been moved to a new "transientflags" node field that
    isn't stored in PPU files
2024-03-24 18:14:49 +00:00
J. Gareth "Curious Kit" Moreton
179fc5848b * Flags specific to TArrayConstructorNode have been moved to their own field 2024-03-02 21:31:21 +01:00
J. Gareth "Curious Kit" Moreton
ecc16278f0 * Flags specific to TAssignmentNode have been moved to their own field 2024-03-02 21:31:21 +01:00
Michaël Van Canneyt
fe62b3ace8 * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
florian
5f42443db3 * several issues with the in_val_x optimization fixed 2024-01-14 18:58:08 +01:00
J. Gareth "Curious Kit" Moreton
01246e4d30 * Fixed issue where Val shortcutting would not compile under 32-bit systems 2024-01-14 03:43:39 +00:00
J. Gareth "Curious Kit" Moreton
6597f02ebc * The "Val" intrinsic is now simplified for string constants akin to a
pure function.
2024-01-13 22:24:08 +00:00
Sven/Sarah Barth
ab5c5a7e9a * also keep track of captured def (necessary when functions are captured) 2023-12-29 20:26:45 +01:00
J. Gareth "Curious Kit" Moreton
83f383e004 * Fixed bug where the original index of a call
para wasn't copied over during "DoGetCopy"
2023-12-28 20:48:43 +00:00
J. Gareth "Curious Kit" Moreton
d25d094d57 * Fixed bug where a call node's intrinsic code
wasn't copied over during "DoGetCopy"
2023-12-28 20:48:43 +00:00
florian
3539b4a6f3 * do str(...) optimization only in level 3+ mode 2023-12-17 18:32:40 +01:00
J. Gareth "Curious Kit" Moreton
81b22cc5d1 * TCallNode.simplify method introduced to convert Str with a constant into a direct string assignment 2023-12-17 15:15:36 +00:00
J. Gareth "Curious Kit" Moreton
28e7dd77de * A call node's original parameter ordering can now be remembered, and a method introduced to access this 2023-12-17 15:15:36 +00:00
J. Gareth "Curious Kit" Moreton
ea7b9c73f3 * New intrinsiccode field for TCallNode to track transmutation from TInlineNode 2023-12-17 15:15:36 +00:00
Sven/Sarah Barth
78025d90b3 + add a tcallnodeflag value that prohibits the tcallnode.pass_typecheck to return a procvar in case of a call without parameters with a found symbol, but no suitable procdef 2023-06-30 17:11:43 +02:00
Sven/Sarah Barth
3dc64dd67e * fix typo in comment 2023-06-30 17:02:37 +02:00
Sven/Sarah Barth
d97d34ee9c * fix #40332: apply patch by Rika to avoid a crash when an overload can't be picked outside of a function (e.g. when using intrinsics inside constants)
+ added test
2023-06-30 15:35:28 +02:00
florian
8f3cce556d * some error messages use nicer symbol names 2023-04-01 22:34:37 +02:00
Jonas Maebe
12bde4e903 WPO: fix dead code detection, and handle procvars
Extend dead code detection to not only look for the main mangled name, but also
for any aliases before deciding that a routine has been dead-stripped.

Assume objects/classes can also be constructed if the address of one of their
constructors or of the TObject.NewInstance class method has been taken.

Resolves #40204
2023-03-24 21:22:18 +01:00
Jonas Maebe
0e46041717 WPO: also consider NewInstance to detect class instancing
Resolves #40200
2023-03-18 21:18:25 +01:00
Pierre Muller
dce70b3b70 Short version of the mips code genration bug 2022-10-29 21:34:00 +01:00
Jonas Maebe
df3a0af7e0 objc: use compile-time macOS version checks
Use "modern" APIs for calling inherited messages when targeting Mac OS X 10.6
or later
2022-09-16 11:21:05 +02:00
Sven/Sarah Barth
cdf676c9b5 * a function also captures other nested functions when these are called 2022-05-26 21:43:36 +02:00
Sven/Sarah Barth
2cc621618a * Delphi-mode calling without parenthesis 2022-05-26 21:43:00 +02:00
Pierre Muller
5acd7a7b83 Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
Sven/Sarah Barth
74f9523806 * in case of an implicit specialization ensure that the symbol of the generic is indeed considered as used once the final implicit specialization has been picked
+ added test
2022-04-23 16:29:13 +02:00
Sven/Sarah Barth
e0e8620ded * use a single if-condition for both check_hints and addsymref 2022-04-23 16:29:13 +02:00
Sven/Sarah Barth
90844c2027 * fix #35261: apply slightly adjusted changes by Ryan Joseph to implement support for implicit generic function specializations
The main adjustments were as follows:
  - fixing coding style and identation
  - fixing some typos
  - using a better name for the property in tcallcandidates which holds the symbols created for anonymous parameter values
2022-04-20 18:59:31 +02:00
florian
d198fc46cb * just copy value parameters to a temp. when inlining instead of
using (@...)^ constructs, resolves #39590
2022-02-19 23:49:27 +01:00
florian
f56aa9abe7 * set expectloc properly for x87 on x86 2021-09-24 22:27:44 +02:00
svenbarth
7330a0156c * fix writing of the method and parameter names for the Variant call description
git-svn-id: trunk@49479 -
2021-06-05 17:43:49 +00:00
pierre
c8c6e647be Avoid keeping optimized out node in callcleanupblock.statements or callinitblock.statements
git-svn-id: trunk@49094 -
2021-03-31 20:53:08 +00:00
nickysn
7ac2f9e242 * synchronized with trunk
git-svn-id: branches/wasm@48660 -
2021-02-13 02:46:23 +00:00
yury
afc80a84cf * Fixed r48650.
git-svn-id: trunk@48657 -
2021-02-12 11:26:37 +00:00