Commit Graph

7701 Commits

Author SHA1 Message Date
Sven/Sarah Barth
98fc58b229 + add a test that check for correct functionality of all the SwapEndian() overloads 2023-09-08 15:02:51 +02:00
Pierre Muller
0210254b2d Fix wrong index error 2023-09-07 22:54:55 +02:00
florian
7e69f399b3 * patch and test by Rika: fixes self inserts in Insert(x, dynarray) and improves Insert(x, dynarray), resolves #40417 2023-08-29 22:23:22 +02:00
Rika Ichinose
1c4151d82e Remake AdjustLineBreaks.
This version is correct and supposedly better in other ways (except for a bit of clarity maybe).
2023-08-29 20:08:03 +00:00
florian
15e7dd3d9f * patch and test by Rika: Redirect StrUtils.RPos to StrUtils.RPosEx, fix a bit, improve a bit, resolves #40394 2023-08-27 22:33:00 +02:00
florian
fb391d571a * another test renamed 2023-08-27 10:48:15 +02:00
florian
e1f7b50985 * renamed tests so they are actually run 2023-08-27 10:09:40 +02:00
J. Gareth "Curious Kit" Moreton
1bcf4a5a8c * New test to detect SSE/AVX optimisation error 2023-08-24 19:41:41 +00:00
Jonas Maebe
1be7416816 default value: fix issue with inlining
Ensure the mangled name is always the same

Resolves #40404
2023-08-20 22:08:47 +02:00
ccrause
9440b17eea [AVR] Add command line options to selectively remove portions of the RTL startup code. 2023-08-15 21:33:58 +00:00
Jonas Maebe
50040a2cab default values: store as staticvarsyms in staticsymtable
Previously, they were stored as localvarsyms in either the localsymtable
(for procedures/functions) or as localvarsyms in the staticsymtable (for
init/fini code of units/main programs). The latter was a hack (staticsymtables
normally cannot contain localvarsyms) and caused the temp allocator to also
allocate them as a local in fini code even if the default was only in the init
code.

The new approach ensures at most one copy gets allocated per unit, it doesn't
require explicit initialisation (since staticvarsyms are in bss -> zeroed by
default), gets rid of the localvarsyms in staticsymtables, and as a bonus
solves an issue with inconsistent LLVM debug information for the localvarsym
in init/fini code (since the staticsymtable is shared between the init and
fini code, so was the local, and therefore we generated debug info stating
it was defined in the fini code but within the scope of the init code).

Resolves #40395
2023-08-15 21:13:48 +02:00
florian
cc27a5de78 + test from Rika for merge request 458 2023-08-14 23:21:25 +02:00
J. Gareth "Curious Kit" Moreton
11957d9a60 * New test, mostly for x86, to detect incorrect TEST/JNE/TEST/JNE optimisation 2023-08-12 23:43:05 +00:00
J. Gareth "Curious Kit" Moreton
6d5876a29c * New CMOV test at webtbs/tw40307.pp 2023-08-12 20:55:12 +00:00
Michaël Van Canneyt
56a906a421 * Hex2Bin Delphi-compatible overloads. Fixes issue #38712 2023-08-12 14:59:07 +02:00
Michaël Van Canneyt
fd39fd96b3 * Add enumerator for TStringBuilder. Fix issue #37088 2023-08-12 14:33:50 +02:00
Jonas Maebe
13346a42bc volatile: allow for assignments 2023-08-12 12:04:40 +02:00
Sven Barth
f258d2f498 * regenerate tests/Makefile 2023-08-03 22:35:05 +02:00
Sven Barth
82dd70e72f * fix parameter alignment on x86_64 when more than 6 parameters are involved (aka the stack is used)
+ added test
2023-08-03 22:34:28 +02:00
Jonas Maebe
45339ddc98 tw40324: fix compilation on unix platforms 2023-07-30 22:22:28 +02:00
Michaël Van Canneyt
8ca4afd2d0 * Tests for NAMESPACES directive 2023-07-26 09:55:12 +02:00
Michaël Van Canneyt
6e84d4275d * Fix for tmarshaller big endianness 2023-07-24 21:51:09 +02:00
Michaël Van Canneyt
b5433100f4 * cwstring for unix 2023-07-23 23:15:55 +02:00
Rika Ichinose
7f4420495b TMarshal & TMarshaller, strange things from Delphi. 2023-07-22 15:24:27 +02:00
J. Gareth "Curious Kit" Moreton
ae5544db4c * New test for i40358 2023-07-21 09:24:53 +01:00
Pierre Muller
e1a216a4aa Add test about bus error generated in sparc compiler 2023-07-16 02:16:56 -05:00
Michaël Van Canneyt
4beda764aa * Tests for webassembly invoke helper 2023-07-13 07:32:21 +00:00
Michaël Van Canneyt
82ed35ead0 * Test adapted: RTTI is enabled for raw interfaces 2023-07-11 08:36:57 +00:00
Michaël Van Canneyt
d472c920ba * Hidden thunk class tests for webassembly 2023-07-11 08:36:57 +00:00
Sven/Sarah Barth
c994b5efe8 * fix #39447: when checking whether the parameters are valid for pointer arithmetic check the *correct* parameter for being valid pointer-like type (I'd say that this was a copy&paste mistake...)
+ added test
2023-06-30 17:42:39 +02:00
Sven/Sarah Barth
a20e8b9a3d * fix #40095: when searching a suitable constructor for the custom attribute don't allow the return of a procvar which can happen in Mac/TP procvar modes (like Delphi)
+ added test
2023-06-30 17:12:56 +02:00
Sven/Sarah Barth
d5c1533377 * fix #40331: for enumeration with holes (that don't have type information) use the binary comparers
+ added test
2023-06-30 16:30:46 +02:00
Sven/Sarah Barth
8592d42afa * test added for #40332 is supposed to fail 2023-06-30 16:24:20 +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
Nikolay Nikolov
adf843196a Merge remote-tracking branch 'origin/main' into wasm_js_promise_integration 2023-06-24 15:08:18 +03:00
Sven/Sarah Barth
f721210638 * fix #40142 and #40324: don't alias the function name to the $result variable for anonymous functions unless an explicit result name is provided
+ added tests
2023-06-23 17:06:41 +02:00
Sven/Sarah Barth
34f1a3ee28 * don't insert anonymous functions into a withsymtable
+ added test
2023-06-23 17:02:15 +02:00
Sven/Sarah Barth
7133ad7ecc * a type helper that inherits from another type helper may extend a unique type helper of the parent's extended type (thus allowing to make the type helper of the original type available for the aliased type)
+ added tests
2023-06-23 16:15:33 +02:00
Nikolay Nikolov
5c792c438d + disallow using sizeof() and bitsizeof() on WebAssembly reference types 2023-06-20 16:56:47 +03:00
Nikolay Nikolov
fce34eb4bf + disallow WebAssembly reference types in records, objects and classes 2023-06-20 15:13:15 +03:00
Nikolay Nikolov
8bd18fc6d3 Merge remote-tracking branch 'origin/main' into wasm_js_promise_integration 2023-06-17 17:11:23 +03:00
Sven/Sarah Barth
0b7a771ca9 * fix #40221: don't allow a conversion from an anonymous function to a procvar type if compare_defs_ext already rejected them
+ added tests
2023-06-16 17:28:50 +02:00
Sven/Sarah Barth
e44a33a78b + previous commit also fixes #40143, #40144, #40145, #40308 and #40315, so add the tests for them 2023-06-16 17:03:51 +02:00
Nikolay Nikolov
2f1ccd6f2a + support 'promising last' exports 2023-06-16 11:00:19 +03:00
Nikolay Nikolov
4d62764fa3 + also allow declaring an external as 'suspending first' 2023-06-13 09:56:44 +03:00
Nikolay Nikolov
0f89852908 + support 'suspending last' externals as well 2023-06-13 09:34:54 +03:00
Nikolay Nikolov
d2396a848b + added a basic JS promise test 2023-06-11 16:59:29 +03:00
Nikolay Nikolov
8eea58f649 + support WebAssembly reference types as WebAssembly globals 2023-06-11 10:31:12 +03:00
Nikolay Nikolov
64569df017 * disallow passing WebAssembly reference types as untyped out parameters as well 2023-06-11 08:58:03 +03:00
Nikolay Nikolov
6ff566350c * disallow passing WebAssembly reference types as untyped var/constref/const parameters 2023-06-11 08:56:27 +03:00
Nikolay Nikolov
acf8fe59d0 * fixed program name in test 2023-06-11 08:32:25 +03:00
Nikolay Nikolov
f670ebbb28 * disallow WebAssembly reference types to be declared as var, constref or out parameters 2023-06-11 08:17:06 +03:00
Nikolay Nikolov
8cd6606970 + support nil comparison of WebAssembly reference types (externref and funcref) 2023-06-11 07:17:04 +03:00
Nikolay Nikolov
9daabb2123 + support using nil constants for setting values of WebAssembly reference types (funcref and externref) 2023-06-11 06:23:02 +03:00
Nikolay Nikolov
7abe3eeb84 + also test that pointers cannot be converted to externref implicitly 2023-06-11 05:56:49 +03:00
Nikolay Nikolov
a47a1c093a * disallow conversion between regular pointers and WasmExternRef 2023-06-11 05:28:39 +03:00
Nikolay Nikolov
021c1a7bb4 * fixed test's program name 2023-06-11 04:29:18 +03:00
Nikolay Nikolov
fcd5ecfcce + some basic tests for WebAssembly funcref types added 2023-06-11 04:27:05 +03:00
Nikolay Nikolov
8743f72f11 + disallow taking the address of WebAssembly externref type 2023-06-11 04:01:58 +03:00
Nikolay Nikolov
65b175cebd + simple test for WasmExternRef 2023-06-11 03:35:25 +03:00
Sven/Sarah Barth
d24eeffa2b * fix #40293: have the SysUtils unit use the TArray<> declaration in the ObjPas unit instead of declaring it again 2023-06-03 18:10:45 +02:00
Pierre Muller
3bb2586269 Fix for sparc64 specific code generation bug report #40252 2023-05-26 17:10:23 +02:00
J. Gareth "Curious Kit" Moreton
0a89e68d55 * Added test to attempt to catch access violation caused by faulty optimisation (i40165) 2023-04-30 22:25:55 +00:00
marcoonthegit
e74d89ce62 * patch by Dean Mustakinov to improve commandline quote handling on Windows, resolves #40189 2023-04-29 13:11:11 +02:00
Pierre Muller
148e4abd0a Add aarch64-freebsd c object files 2023-04-24 18:23:01 +02:00
Pierre Muller
11a390117c Improve test for unaligned access 2023-04-21 20:46:11 +00:00
florian
e40f997a40 * another patch to fix #40223 2023-03-31 23:45:45 +02:00
florian
6663d5ca63 * do not replace index registers with esp/rsp, resolves #40223 2023-03-30 21:36:35 +02:00
Dmytro Bogatskyy
327aac7f24 Add aarch64-iphonesim target 2023-03-27 18:45:00 +00: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
florian
3e3b96e088 * fix of Erroneous reading of the value of the StackLength variable at program start based on issue report by Sergey Larin, resolves #40211 2023-03-21 22:37:40 +01:00
florian
488c389b9b + support FILEEXISTS(...) in preprocessor expressions, resolves #39527
+ tests
  * tscannerfile.readpreproc sets preproc_pattern correctly for quoted strings
2023-03-20 23:17:09 +01:00
florian
0d3ec87492 * also initalize default helper variables of initialization sections, resolves #40183 2023-03-19 21:19:10 +01:00
Jonas Maebe
0e46041717 WPO: also consider NewInstance to detect class instancing
Resolves #40200
2023-03-18 21:18:25 +01:00
florian
64319dc019 * PopCount takes care only of the bit pattern, so take the uvalue to avoid an internal error, resolves #40190 2023-03-17 22:30:36 +01:00
Sven/Sarah Barth
6aab856213 + add test for already fixed #37380 2023-03-15 23:39:59 +01:00
Sven/Sarah Barth
c1ecfc323a * ensure that a procvar (especially a "REFERENCE TO") begins either with FUNCTION or PROCEDURE
+ added test
2023-03-15 23:39:59 +01:00
florian
f0ac02cb2e * patch by Rika: Remove wrong paranoia (and add correct one (and shorten in general (and fix a bug in))) fpc_dynarray_setlength, resolves #40193 2023-03-12 22:15:55 +01:00
Sven/Sarah Barth
d6d693696e + add test for fixed #40077 2023-03-06 23:29:04 +01:00
Sven/Sarah Barth
4823ca7114 * fix #40074: adjust Generics.Defaults to make use of the new ConstParamIsRef<> utility function to correctly determine how a generic binary parameter needs to be compared 2023-03-06 23:24:36 +01:00
florian
99b01f6634 * second mul might get called with a zero operand if the other has a side effect,
handle this correctly in ti386addnode.second_mul64bit, resolves #40182
2023-03-06 23:19:34 +01:00
Sergey Larin
62c24b3756 Added test to check WideChar const to UTF8String const conversion 2023-02-24 22:59:39 +00:00
J. Gareth "Curious Kit" Moreton
090e4fea96 * New test for i40122 2023-02-19 20:22:49 +00:00
florian
811c683775 * set rangedef of dyn. arrays correctly, resolves #40149 2023-02-15 22:14:55 +01:00
Jinyang He
783bbb66f9 Update Makefiles 2023-02-05 19:18:48 +00:00
Jinyang He
176462c39a add loongarch64 tests support 2023-02-05 19:18:48 +00:00
florian
a9f9996dc8 + support leap seconds in TryEncodeTime, resolves #40121 2023-01-30 22:40:15 +01:00
Rika Ichinose
b38d13577f Make Utf8CodepointLen adhere to the Unicode standard somewhat more and know all of the Unicode 15.0 combining characters. 2023-01-30 13:51:31 +00:00
florian
09b435cdab * transform a/a only into 1 if fastmath is on 2023-01-29 13:49:33 +01:00
florian
8ef0f59025 * mark constant symbols used in preprocessor expressions as used, resolves #40108 2023-01-24 22:36:26 +01:00
florian
ec28b7586c + support procvar[] in tp/mac procvar mode if the procvar returns an array type 2023-01-22 16:24:29 +01:00
florian
55deefbab5 * do not crash on illegal with statement, resolves #40118 2023-01-18 23:03:28 +01:00
florian
5598ffc210 * x86_64: warn only on negative offsets if rsp is involed, second part of #40113
+ tests
2023-01-17 23:09:42 +01:00
florian
8b08486fa1 * do not warn on lea e/rsp with negative address offset, part of #40113
+ tests
2023-01-15 23:06:05 +01:00
J. Gareth "Curious Kit" Moreton
b997e41366 * New tests that evaluate CMOVcc using a reference even if IfRefSafe returns False because the previous condition reads it 2023-01-10 22:23:58 +00:00
J. Gareth "Curious Kit" Moreton
891723111c * New test for extended CMOVcc optimisations 2023-01-10 22:23:58 +00:00
florian
899bdc0016 * first approach to fix tfrldexp on i386-win32 2023-01-06 23:03:40 +01:00
florian
cfbdf90ab0 * patch by Rika to optimize ArcCos, resolves #40078 2023-01-02 18:56:41 +01:00
Sven/Sarah Barth
e1288897f3 * fix #40031: with support for inline specializations it no longer makes sense to make the parameter symtable of a procedure variable type readonly as there *are* defs that are added to it
+ add adjusted test
2022-12-30 23:32:00 +01:00
Sven/Sarah Barth
4510945465 * fix #40062: ensure that Self is only added to anonymous functions when dealing with method pointers
+ added test
2022-12-30 23:32:00 +01:00
Sven/Sarah Barth
5d7e3ca240 * fix #40060: ensure that Self is not added for anonymous functions that are part of a static class method
+ added test
2022-12-30 23:32:00 +01:00
Sven/Sarah Barth
4c6338207f * fix #40061: the Self of types that aren't implicit pointers (recods, TP-style objects, primitive types (for helpers)) needs to be stored as a Pointer in the Capturer so that modifications are correctly visible
+ added tests
2022-12-30 23:32:00 +01:00
florian
7affd78904 * do not throw an internal error on typed constants with wrong element count, resolves #40066 2022-12-30 21:53:04 +01:00
florian
69eebe4c0c + patch by Rika to implement missing TPointF methods, resolves #40057
+ test by Rika
2022-12-29 15:20:49 +01:00
florian
571e0c39cc * increase time out 2022-12-24 17:25:42 +01:00
florian
3203eac6d3 + missing -O4 option added 2022-12-24 17:07:27 +01:00
florian
28b4189a9a * mess cleaned up 2022-12-23 18:16:52 +01:00
florian
30e0df384d * second part of #40041 fixed
+ tests
2022-12-22 22:41:39 +01:00
florian
e0fef23d77 * properly transform a+const1-const2 into a+const1+(-const2), resolves #40041 2022-12-21 22:34:46 +01:00
Michaël Van Canneyt
68cdd7073f * Patch from Ondrej to implement SameArray 2022-12-19 09:56:50 +01:00
Ondrej Pokorny
d1f999100b Add SetToArray and ArrayToSet functions for more general RTTI Set handling 2022-12-18 13:32:15 +00:00
florian
7917cbed22 + (negative) test for cmov/j/set without condition 2022-12-12 22:56:41 +01:00
florian
c92056fcac * patches by Rika: Fix a bug in LdExp(extended), and test Math.Frexp/Ldexp implementations instead of own, resolves #40030 2022-12-11 20:04:46 +01:00
florian
bf2911a562 + test for #40025 by Rika, resolves #40025 2022-12-10 21:35:07 +01:00
Pierre Muller
96c63c4443 Fix fcmove instruction for external assemblers 2022-12-10 19:59:05 +00:00
Pierre Muller
a592636d9c Use CMOV and FCMOV with a condition, the parser should reject without a condition 2022-12-10 17:06:35 +00:00
Jonas Maebe
851af5033f Darwin/AArch64: adjust alignment info of custom-aligned paralocs
Resolves #40019
2022-12-06 21:46:26 +01:00
J. Gareth "Curious Kit" Moreton
f54917d600 * New test to catch stack overflow in compiler (#40010) 2022-12-04 05:52:08 +00:00
Sven/Sarah Barth
ebb4de1441 * mark test as NORUN 2022-12-03 19:41:34 +01:00
Sven/Sarah Barth
7a34677b2a * as long as the type passed into a TypeInfo() is not an undefined or error def the resulting value will always be constant at compile time, so it can be compared to another then no matter if typenode or not
+ added tests
2022-12-02 17:47:15 +01:00
Pierre Muller
b202fb2b0a Fix two tests for ELFV2 powerpc64 ABI 2022-12-01 00:05:05 +00:00
florian
b835005941 * proper naming for test, resolves #40013 2022-11-30 22:17:58 +01:00
florian
96d4bd19ac * use bzhi only (if at all) for in_and_assign_x_y and not other in_*_x_y operations, resolves #40016 2022-11-30 22:16:21 +01:00
J. Gareth "Curious Kit" Moreton
5704626762 * New test to catch issue identified in #40003 2022-11-28 21:43:50 +00:00
florian
247423400f * create muln with create instead of create_internal when converting "n - n mod const)" so pass1 works properly, resolves #40004 2022-11-24 22:43:27 +01:00
florian
e7fda48327 + missing halt instructions 2022-11-23 19:01:32 +01:00
Pierre Muller
d38c24fee7 Add test for avx2 support using cpu unit function avx2support 2022-11-22 22:48:35 +01:00
florian
0ba4cee279 * convert n-n mod const into n div const*const, resolves #39615 2022-11-22 22:41:58 +01:00
J. Gareth "Curious Kit" Moreton
735f297f5b * Range check fixes to BZHI tests 2022-11-21 14:44:39 +00:00
florian
3b43bd027c * calculate life info for if nodes correctly if the then branch is empty, resolves #39992 2022-11-13 22:28:08 +01:00
Pierre Muller
0f30af07e5 Fix test to succeed for big endian mips 2022-11-12 13:16:51 +00:00
florian
3e6d4bf1cc * new cpu feature tests 2022-11-09 23:09:07 +01:00
florian
12aa48602b + CMOVSupport function 2022-11-08 21:15:11 +01:00
Sven/Sarah Barth
9e3483fbeb * fix #39977: allow a capturer to access any method independant of visibility as the visibility checks are supposed to have been done before the captured symbol was converted
+ added test
2022-11-06 22:01:49 +01:00
Sven/Sarah Barth
b051e7667c * fix #39978: ensure that Self is captured when a method of the current class is captured into a function reference
+ added test
2022-11-06 22:01:49 +01:00
Sven/Sarah Barth
d221f42a57 * ensure that the correct overload is picked for function reference parameters
+ added tests
2022-11-06 22:01:49 +01:00
Sven/Sarah Barth
a714e2ff35 * fix #39981: retrieve the symbol that returns the desired procdef/procvardef not maybe the Self or something else as we need that symbol to differentiate the procdefs
+ added test
2022-11-06 22:01:48 +01:00
Rika Ichinose
7243befdb7 Better TBits. 2022-11-06 20:55:38 +00:00
J. Gareth "Curious Kit" Moreton
0dbf40a24c * Added new tests for BZHI optimisations 2022-11-06 15:42:09 +00:00
Ondrej Pokorny
05c45486e8 fcl-image/pasjpeg: handle Exif orientation flag automatically 2022-11-02 09:25:20 +00:00
florian
3f7bf0fd70 * stop generation of typed array constants if the size does not match, resolves #39980 2022-11-01 21:16:31 +01:00
florian
0eee70ac81 * fix FindUnitSymtable for exception symtables, resolves #24801 and #39974
* more consistent naming of exceptsymtable enumeration symbol
2022-10-31 20:19:10 +01:00
Pierre Muller
e1b3c03daf Add test for mips code generation bug 2022-10-29 21:34:00 +01:00
Sven/Sarah Barth
e050a019a2 * fix #29859: ensure that it's correctly passed down into generate_specialization whether a unit name was provided for the specialization and if so search the generic only in that unit
+ added tests
2022-10-28 17:40:53 +02:00
florian
c75bb80b14 * more debug messages
* better exit codes for test
2022-10-26 23:20:18 +02:00
Pierre Muller
49ddf159b2 Fix internalerror generated with riscv32 compiler.
Fix
  Compiling ./fcl-passrc/src/pscanner.pp
  pscanner.pp(2512,40) Fatal: Internal error 2006010801
  error generated for riscv32-linux target after commit #c83e6c34
  by correcting expectloc for riscv32 for 64-bit comparisons.
  Add a small test.
2022-10-25 18:42:14 +02:00
florian
3fa77a4f62 * fix life information propagation for while loops, resolves #39971
* warnings/errors fixed which are caused by the new life information propagation
  + test
2022-10-24 22:13:43 +02:00
J. Gareth "Curious Kit" Moreton
fa76baa3d4 * New test to evaluate i39918 2022-10-22 13:07:16 +00:00
florian
8f269d4540 * check for proper exception type 2022-10-22 15:05:52 +02:00
florian
2b48afe151 * check if optinfo is assigned before using it, resolves #39913 2022-10-21 21:14:39 +02:00