summaryrefslogtreecommitdiff
path: root/tests/tbs
Commit message (Collapse)AuthorAgeFilesLines
* * { ... } is no a longer valid comment in aarch64 assemblerflorian2021-04-171-4/+4
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49215 3ad0048d-3df7-0310-abae-a5850022a9f2
* * generate more efficient code for trunc(currency), trunc(comp), andjonas2020-12-271-0/+22
| | | | | | | | | round(comp) on platforms where currency and comp are handled using the FPU o also fixes trunc(comp) and trunc(currency) compilation for x86 on LLVM with -Oofastmath * add missing removal of excess fpu precision typecasts for trunc/round git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47854 3ad0048d-3df7-0310-abae-a5850022a9f2
* + support got modifier on labelsflorian2020-12-261-0/+17
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47851 3ad0048d-3df7-0310-abae-a5850022a9f2
* * apply patch by Blaise.ru to allow record methods to be assigned to method ↵svenbarth2020-12-161-0/+23
| | | | | | | | variables as well (this is Delphi compatible) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47794 3ad0048d-3df7-0310-abae-a5850022a9f2
* + -Xa option: generate code which allows to use more than 2 GB of static ↵florian2020-11-301-0/+2
| | | | | | | | | data on 64 Bit targets + implemented support for x86-64 * more than 2 GB static data requires to use the --no-relax option on linux git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47651 3ad0048d-3df7-0310-abae-a5850022a9f2
* * allow an integer expression for SetPeFlags and SetPeOptFlags (Delphi ↵svenbarth2020-11-261-0/+8
| | | | | | | | compatible) * adjusted test to check that as well git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47602 3ad0048d-3df7-0310-abae-a5850022a9f2
* * ensure that internal method names (namely operator overloads and class ↵svenbarth2020-10-142-0/+54
| | | | | | | | con-/destructors) result in different mangled names from ordinary methods even if they should be converted to lowercase (which happens for section names) + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47110 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix test: TThread.WaitFor calls CheckSynchronize as well, so the thread ↵svenbarth2020-10-111-0/+8
| | | | | | needs to signal when it's done with removing entries from the queue git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47084 3ad0048d-3df7-0310-abae-a5850022a9f2
* + x86: FstpFld2Fst optimization (re-enabled for safe cases)florian2020-09-301-0/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47024 3ad0048d-3df7-0310-abae-a5850022a9f2
* * when removing a method from the synchronization queue using ↵svenbarth2020-09-291-0/+72
| | | | | | | | TThread.RemoveQueuedEvent then both the Code and the Data need to match (Delphi does the same) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47007 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #37806: allow undefineddefs for Include() and Exclude()svenbarth2020-09-251-0/+40
| | | | | | + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46953 3ad0048d-3df7-0310-abae-a5850022a9f2
* * added missing "end." (fixup for r46904)jonas2020-09-201-0/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46906 3ad0048d-3df7-0310-abae-a5850022a9f2
* * don't print range check warnings when evaluating inlined explicit typecastsjonas2020-09-201-0/+20
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46904 3ad0048d-3df7-0310-abae-a5850022a9f2
* * avoid range check error when using SwapEndian with 16-bit constantssvenbarth2020-09-191-0/+14
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46897 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Added the $F+ switch (forced far calls) for some TP mode tests.yury2020-08-164-0/+4
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46456 3ad0048d-3df7-0310-abae-a5850022a9f2
* F_GetLk/SetLk have different values for sparc/sparc64pierre2020-07-222-0/+13
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45829 3ad0048d-3df7-0310-abae-a5850022a9f2
* * correctly handle selection between Single and Double overloads for Currencysvenbarth2020-06-271-0/+45
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45707 3ad0048d-3df7-0310-abae-a5850022a9f2
* * for adding procdefs to forwarddefs check for the specialization flag ↵svenbarth2020-06-133-0/+68
| | | | | | | | instead of whether it's a full specialization; fixes implicit finalization handlers on x86_64-win64 not being found + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45646 3ad0048d-3df7-0310-abae-a5850022a9f2
* * x86: Fixed peephole optimization introduced in r44233. tb0219 and tb0548 ↵yury2020-05-062-0/+8
| | | | | | | | tests have failed with -O2 since then. * Added variants of the tb0219 and tb0548 tests with forced -O2. git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45291 3ad0048d-3df7-0310-abae-a5850022a9f2
* * handle generic parameters in Ord()svenbarth2020-05-031-0/+33
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45232 3ad0048d-3df7-0310-abae-a5850022a9f2
* * correctly handle result type of string constant nodes for internally createdflorian2020-05-031-0/+20
| | | | | | nodes git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45231 3ad0048d-3df7-0310-abae-a5850022a9f2
* * add support for AND, OR, XOR and NOT of integer values in preprocessor ↵svenbarth2020-04-241-0/+92
| | | | | | | | directives (Delphi allows that as well) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45053 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #36951: B and BL can take immediate literals as wellsvenbarth2020-04-221-0/+31
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44999 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fixed tests for architectures with FPC_COMP_IS_INT64 definedflorian2020-02-201-1/+17
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44222 3ad0048d-3df7-0310-abae-a5850022a9f2
* * only resolve a dummy symbol if it is a type symbol (thus truly a dummy symbol)svenbarth2020-02-142-0/+40
| | | | | | + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44172 3ad0048d-3df7-0310-abae-a5850022a9f2
* * also allow by-value open array parameters for the tail recursion optimizationsvenbarth2020-01-211-0/+20
| | | | | | * adjusted test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44012 3ad0048d-3df7-0310-abae-a5850022a9f2
* * enable tail recursion optimization also for const and constref open arrayssvenbarth2020-01-211-0/+69
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44011 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #36496: correctly handle the function result alias variable ↵svenbarth2019-12-302-0/+44
| | | | | | | | inside generic functions + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43823 3ad0048d-3df7-0310-abae-a5850022a9f2
* * correctly handle the genericdef being a procdef, otherwise no code will be ↵svenbarth2019-11-251-0/+33
| | | | | | | | generated (and no error either :/ ) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43586 3ad0048d-3df7-0310-abae-a5850022a9f2
* + add test for a problem reported by Michael van Canneyt which is fixed by ↵svenbarth2019-11-241-0/+915
| | | | | | the previous revision git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43569 3ad0048d-3df7-0310-abae-a5850022a9f2
* * naming of tests fixedflorian2019-11-163-0/+0
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43502 3ad0048d-3df7-0310-abae-a5850022a9f2
* * relax conditions in tcallnode.optimize_funcret_assignment, resolves #36279florian2019-11-161-0/+10
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43501 3ad0048d-3df7-0310-abae-a5850022a9f2
* + add tests to check for correct definition of the FPC_* mode definessvenbarth2019-10-037-0/+175
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43115 3ad0048d-3df7-0310-abae-a5850022a9f2
* * initialise local variable to prevent random failuresjonas2019-09-141-0/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42992 3ad0048d-3df7-0310-abae-a5850022a9f2
* * factored out the conditions under which add nodes need to performjonas2019-08-031-0/+11
| | | | | | | | overflow checks o in particular ensure that cpu-specific overrides don't perform overflow checks when nf_internal is set git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42573 3ad0048d-3df7-0310-abae-a5850022a9f2
* * disabled low-level hack test for LLVMjonas2019-05-191-0/+7
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42102 3ad0048d-3df7-0310-abae-a5850022a9f2
* * correct return a pointer to the list so that List^[x] works as it did ↵svenbarth2019-04-261-0/+29
| | | | | | | | before 3.2 + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41938 3ad0048d-3df7-0310-abae-a5850022a9f2
* * allow any untyped parameter to be passed to a untyped constref parametersvenbarth2019-04-041-0/+27
| | | | | | + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41829 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #35150: correctly convert Int64/QWord values to OleVariant ↵svenbarth2019-03-031-0/+115
| | | | | | | | (Delphi compatible) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41571 3ad0048d-3df7-0310-abae-a5850022a9f2
* * stop searching for methods to implement interfaces in parent classes afterjonas2018-12-281-0/+34
| | | | | | | | | | | encountering a method with the correct name that does not have the "overload" directive (same logic as when looking for a call candidate, to avoid errors when using a Pascal-level wrapper to call interface methods, and Delphi-compatible since it always required "overload" for overloaded methods) o also catches calling convention mismatches like in webtbs/tw27349 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40683 3ad0048d-3df7-0310-abae-a5850022a9f2
* * support for compiling the objects unit methods that expect local procedure/jonas2018-12-201-0/+4
| | | | | | | | | | | | | function pointers using {$modeswitch nestedprocvars} functionality, activate this for LLVM and also activate that modeswitch for a test that uses this o also convert the IDE units to use this functionality o requires extra typecasts because implicit type conversions from procvar(p: psometype) to procvar(p: pointer) are not supported; on the plus side, even those type conversions are checked for validity o note: requires {$modeswitch nestedprocvars} in all programs/units that rely on this functionality git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40598 3ad0048d-3df7-0310-abae-a5850022a9f2
* Modify tbs/tb0588.pp to check that a warning is issued about ↵pierre2018-12-111-21/+0
| | | | | | non-initialized return value, moved to tbf directory git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40521 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Further improvement for r40180:yury2018-11-041-0/+64
| | | | | | | | | | | | | | An uninitialized function Result of a managed type needs special handling. When passing it as a var parameter a warning need to be emitted, since a user may expect Result to be empty (nil) by default as it happens with local vars of a managed type. But this is not true for Result and may lead to serious issues. The only exception is SetLength(Result, ?) for a string Result. A user always expects undefined contents of the string after calling SetLength(). In such case a hint need to be emitted. + Tests for this. git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40216 3ad0048d-3df7-0310-abae-a5850022a9f2
* * is_range_test returns false if "lower" bound is greater than "upper" boundflorian2018-09-271-0/+12
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39837 3ad0048d-3df7-0310-abae-a5850022a9f2
* Merged riscv_new branchflorian2018-09-265-2/+18
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39813 3ad0048d-3df7-0310-abae-a5850022a9f2
* * explicitely handle the boolean types to determine the bit size as all of ↵svenbarth2018-09-211-0/+55
| | | | | | | | them have the bit size 1 + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39786 3ad0048d-3df7-0310-abae-a5850022a9f2
* * protect the destructors of tabstractrecordsymtable and twithsymtable ↵svenbarth2018-08-311-0/+21
| | | | | | | | against executing when called with a refcount > 1 (this fixes Mantis #34210) + added simplified test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39693 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #34021: if one of the two operators is an array constructor ↵svenbarth2018-08-031-0/+50
| | | | | | | | try to use an operator overload for that first before converting it to a set + added tests git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39554 3ad0048d-3df7-0310-abae-a5850022a9f2
* + support for the directive $EXCESSPRECISIONflorian2018-07-121-0/+22
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39443 3ad0048d-3df7-0310-abae-a5850022a9f2
* + support TP7-compatible @proc^ (as in FillChar(@proc^,...))nickysn2018-06-292-0/+54
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39343 3ad0048d-3df7-0310-abae-a5850022a9f2