Commit Graph

71044 Commits

Author SHA1 Message Date
Michaël Van Canneyt
8cedb10c3a * Search for correct element type when checking array types 2024-11-25 21:58:17 +01:00
Michaël Van Canneyt
0ca0990e8b * System.Types for Delphi code 2024-11-25 21:58:17 +01:00
Michaël Van Canneyt
8d24a28c56 * Do not call parsing if JSON is empty (e.g. return 204 with empty body) 2024-11-25 21:58:17 +01:00
Michaël Van Canneyt
e15f731a9b * Allow to parse internal symbol names generated for generics. 2024-11-25 21:58:17 +01:00
florian
ac4b089e14 * avoid that types of limits of reverted loops are widened 2024-11-25 21:16:30 +01:00
florian
81d24975f0 * properly take care of tempinitcode when calculating def./use. sums of tempcreate nodes 2024-11-25 20:33:54 +01:00
Michaël Van Canneyt
8ffbbe6a93 * Patch from Евгений Савин to fix TValue.From<managedrecord>. Fixes issue #41013 2024-11-25 14:01:26 +01:00
Michaël Van Canneyt
e1e301dea8 * Add missing methods to thunk class for parent interfaces without RTTI 2024-11-25 11:32:36 +01:00
florian
cc7325e316 * increase stack margin for x86-64 so back tracing a stack overfow with line info does not cause another stack overflow 2024-11-24 22:58:47 +01:00
Michaël Van Canneyt
e03e62f013 * Some fixes in handling of headers 2024-11-23 22:54:40 +01:00
florian
c236ac5e97 * revert for loops also if the upper limit is non-constant 2024-11-23 22:29:03 +01:00
Michaël Van Canneyt
b05e85dda9 * Implement some GetValue methods 2024-11-23 22:08:17 +01:00
Rika Ichinose
d1db5d2104 Darwin: re-enable new assembler fill*word variants
Work around with an extra jump to an extra function.
2024-11-23 19:06:47 +03:00
Michaël Van Canneyt
26b6d0223e * Add IsType with aEmptyAsAnyType param 2024-11-23 10:23:36 +01:00
Michaël Van Canneyt
0c83b3dc6c * Add Delphi-Compatible new findCmdLineSwitch overload 2024-11-23 10:23:36 +01:00
Sven/Sarah Barth
8f37905609 * use a static data label for the case-label table on aarch64-win64 to avoid the linker discarding it 2024-11-22 17:57:02 +01:00
Sven/Sarah Barth
7b3efe6397 * on aarch64-win64 the case-labels are a list of 8-Byte aligned 8—Byte values, so adjust the alignment to avoid 2 32-bit loads 2024-11-22 17:56:11 +01:00
Sven/Sarah Barth
ad4fe174b1 * ensure that the section with the case-labels is 8-Byte aligned 2024-11-22 17:55:35 +01:00
Sven/Sarah Barth
0e39308416 * adjust comments to better match the situation with aarch64-win64 added to the mix 2024-11-22 17:54:57 +01:00
florian
09f3600cc4 * patch by Lipinast Lekrisov: fix building ffi.pp on macOS, resolves #41035 2024-11-21 22:02:10 +01:00
mattias
3c6f111209 pastojs: added resourcestring 2024-11-21 12:13:40 +01:00
mattias
3fbb5e3ecf fcl-passrc: started test for method param attributes 2024-11-21 12:13:40 +01:00
Michaël Van Canneyt
03f98e749c * Fix TValue casts, patch by Евгений Савин, fixes issue #41030 2024-11-21 11:51:11 +01:00
Sven/Sarah Barth
40f90b60eb * DWARF line info: only use the cached module if the base address also is the same; this can happen if the initial exception occurred at a random address outside the module, but the next stack address can be found inside the correct module 2024-11-20 22:56:09 +01:00
florian
4d732b44d4 * correctly calculate the number of labels of a c boolean in case statemnts, resolves #41025 2024-11-20 22:04:58 +01:00
Jonas Maebe
28e9ebc7da Darwin: disable new assembler fill*word variants
They use interprocedural gotos at the assembler level, which is incompatible
with auto-generated CFI
2024-11-20 21:39:19 +01:00
Michaël Van Canneyt
1230e5a623 * Delphi-compatible output for tvalue.asstring for float value. Fixes issue #41027 2024-11-19 23:34:28 +01:00
Pierre Muller
930596bd85 Fix directories for some source files, based on suggestion by Alfred Glänzer in #40995 2024-11-19 22:12:31 +00:00
zamtmn
b3e8d88f68 GetMutableValue and TryGetMutableValue for fcl-stl.TMap and rtl-generics.generics.TDictionary 2024-11-19 16:42:59 +00:00
Ondrej Pokorny
bc7ed55aab fix TCustomBase64Encoding.DoEncode(TStream) 2024-11-18 22:24:21 +00:00
Ondrej Pokorny
303834e2a2 TCustomBase64Encoding.DoDecode/DoEncode(array of Byte): no UTF8 encoding/decoding 2024-11-18 22:24:21 +00:00
Ondrej Pokorny
ddf56bee7a System.NetEncoding: Delphi-compatible Base64 and Base64String encodings 2024-11-18 22:24:21 +00:00
Michaël Van Canneyt
94a4a38ad6 * Added new test unit 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
f6402d6ff5 * Correct command-line working 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
2301f09d77 * OpenAPI support for SQLDBRest 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
3855187038 Type maps signature changed 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
d84731a07e * Corrected tests 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
89da1e0729 * Allow to compile with dotted units 2024-11-18 23:02:36 +01:00
Michaël Van Canneyt
86da0baf02 * Corrections when writing file: write in 3.1 format 2024-11-18 23:02:36 +01:00
florian
4888442fb4 * RiscV: more reliable use_fma 2024-11-18 22:32:55 +01:00
florian
0b49fba637 + more RiscV extensions
* make use of F and D extension flags
2024-11-17 15:05:35 +01:00
florian
08762ab8f0 * missing part of last commit 2024-11-17 15:03:49 +01:00
Sven/Sarah Barth
ecbd0fc0da * move aliases of fpc_copy and fpc_copy_by_move_semantics to aliases and adjust their names to match other aliaes 2024-11-17 14:33:25 +01:00
florian
c48d8e9708 * write additional info for the tests, might help to identify spurious failures 2024-11-17 14:21:12 +01:00
Rika Ichinose
078e2eabf9 Simplify constexp.pas and fix certain edge cases.
High(uint64) - 2 - High(uint64) now gives correct −2.
2024-11-17 12:39:18 +00:00
Rika Ichinose
798d793cdc Specialized fpc_copy_with_move_semantics for destructive copies. 2024-11-17 09:45:11 +00:00
Sven/Sarah Barth
6ec8441744 * test that SysUtils.Swap<>() doesn't hide System.Swap() 2024-11-17 10:15:44 +01:00
Frederic Kehrein
64c27a86a8 * Adding new generic Extract and Swap function to RTL
These allow to move data from one variable to another without triggering
the copy operation. Extract makes use of the newly introduced move
semantic for function results and Swap uses System.Move to not trigger
the copy mechanism.
2024-11-16 22:08:06 +00:00
Frederic Kehrein
ca92c49f8c * Avoid calling copy operator when moving data from temporary objects
When a function returns a managed record, a new temporary object is
created for the result, which is then copied to the real destination.
For managed records with a deep copy implementation, this can create
immense overhead. So instead this introduces a move, which basically
consists of
```pascal
procedure Move(var src, dst);
begin
  Finalize(dst); // Finalize existing data
  Move(src,dst,sizeof(dst)); // Shallow copy
  Initialize(src); // Clear source
```

* nld.pas: use MOVE when assigning the function result from the
  temporary return object
* rtl/inc/systemh.pas: Adding new macro to mark new RTTI version with MOVE
  operation
* rtl/inc/compproc.inc, rtl/inc/rtti.inc: Adding new move mechanism when
  indicated by the compiler.
2024-11-16 22:08:06 +00:00
florian
e4af0fc1e9 * don't mess with boolean and/or operations in mixed short/full evaluated expressions, resolves #41012 2024-11-16 17:27:16 +01:00