Commit Graph

776 Commits

Author SHA1 Message Date
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
nickysn
a74024e7d5 * synchronized with trunk
git-svn-id: branches/wasm@48654 -
2021-02-12 01:54:24 +00:00
yury
4245b20a32 * Fixed expectloc of local variables passed as a formal parameter. This issue is caught by cycling the compiler with -dEXTDEBUG. Yet the compiler can't cycle with EXTDEBUG due to other issues with wrong expectloc.
git-svn-id: trunk@48650 -
2021-02-11 10:39:41 +00:00
nickysn
8b4aceea50 * synchronized with trunk
git-svn-id: branches/wasm@48134 -
2021-01-11 07:01:01 +00:00
Jonas Maebe
5c2303a76b * add parameter cleanup nodes to the call cleanup block (mantis #38316)
git-svn-id: trunk@48130 -
2021-01-10 15:47:27 +00:00
nickysn
91e9558f5b * synchronized with trunk
git-svn-id: branches/wasm@47766 -
2020-12-12 23:20:33 +00:00
florian
c82aae59a1 * call node_complexity correctly in order_parameters when sorting parameters
git-svn-id: trunk@47763 -
2020-12-11 22:14:18 +00:00
svenbarth
1efeb5851a * fix regression introduced with r47625 for Mantis #38122: when checking for a dereferentiation of the Self parameter subscript and vec nodes need to be kept
+ added test

git-svn-id: trunk@47747 -
2020-12-10 06:11:46 +00:00
nickysn
dc5b78d5f0 * synchronized with trunk
git-svn-id: branches/wasm@47716 -
2020-12-08 06:57:57 +00:00
svenbarth
69e6f3dcbb * if a call inside a generic's code that involves generic type arguments can't be clearly determined then postpone it till specialization in the hope that the type will be clear then
+ added test

git-svn-id: trunk@47686 -
2020-12-04 22:07:34 +00:00
nickysn
aeafe42144 * synchronized with trunk
git-svn-id: branches/wasm@47653 -
2020-12-01 03:27:01 +00:00
svenbarth
82957ec5a3 * Fix for Mantis #38122: when a deref node is passed as a Self parameter for a type helper (which is a var parameter) we need to pass the non-derefentiated value so that the data it points to can be modified by the helper's method (this is Delphi compatible)
+ added tests

git-svn-id: trunk@47625 -
2020-11-28 18:32:24 +00:00
nickysn
48b81da877 * synchronized with trunk
git-svn-id: branches/wasm@47249 -
2020-10-29 10:49:36 +00:00