Commit Graph

5239 Commits

Author SHA1 Message Date
florian
aec18c2426 * weight currency->float conversions the same regardless if
the currency type is handled by the integer unit or the x87 fpu,
    resolves #38309

git-svn-id: trunk@48089 -
2021-01-05 22:39:16 +00:00
svenbarth
57d9884d96 * fix for Mantis #38310: ignore procsyms that have no procdefs for checking overloads, or more precisely to stop checking for overloads; these are generic dummy symbols
+ added (simplified) tests

git-svn-id: trunk@48088 -
2021-01-05 20:58:46 +00:00
florian
7d5b0d2382 * handle rawbytestrings in Win32Ansi2UnicodeMove properly, resolves #38299
git-svn-id: trunk@48021 -
2021-01-03 22:55:37 +00:00
florian
9592c033e5 * process fma intrinsic parameters in an order which takes care of multiple x87 stack parameters, resolves #38295
git-svn-id: trunk@48017 -
2021-01-03 17:08:58 +00:00
michael
743e7c1c1b * Forgot to commit
git-svn-id: trunk@48014 -
2021-01-03 15:30:41 +00:00
svenbarth
c96029ebd5 * Delphi does not allow a generic method to be overloaded by a non generic type of the same name (unlike for generic types and non generic routines); this is probably done to simplify the implementation of implicit specializations of generic methods so we do this as well. For this we change the dummy symbol for generic routines from a typesym to a procsym
+ added tests

Note: what Delphi /does/ allow however is to overload a generic routine with a generic type... go figure. :/ We currently don't allow that

git-svn-id: trunk@48002 -
2021-01-02 23:23:39 +00:00
svenbarth
d854d18bd9 * instead of blindly consuming whatever comes next trigger an explicit error if the parsed expression does not match for "INDEX ordexpr" or "NAME strexpr"
+ added tests

git-svn-id: trunk@47995 -
2021-01-02 23:23:08 +00:00
florian
7de94e7a1d * properly fold string+string const+string const., resolves #38267
git-svn-id: trunk@47977 -
2021-01-02 17:18:54 +00:00
michael
390be00327 * Markdown support for fpdoc
git-svn-id: trunk@47973 -
2021-01-02 14:28:45 +00:00
florian
97abf6b495 * first part of fixing #38267: do not bail out early during constant folding
if the constant is 1 or -1

git-svn-id: trunk@47933 -
2021-01-01 15:26:13 +00:00
florian
edfbf2ce30 * correctly handle inlined exits in dfa, resolves #38259
git-svn-id: trunk@47894 -
2020-12-29 22:35:33 +00:00
florian
eb7702bea4 + implement align directive for records, resolves #28927
git-svn-id: trunk@47892 -
2020-12-29 18:19:35 +00:00
michael
f1db695809 * Move chm writer to separate unit
git-svn-id: trunk@47868 -
2020-12-28 13:55:22 +00:00
Jonas Maebe
b359080f42 * fixed round(currency) so it takes the rounding mode into account on
platforms where currency is "type int64"
  * inline trunc(currency), trunc(comp) and round(comp) on platforms where
    currency and comp are "type int64"

git-svn-id: trunk@47859 -
2020-12-27 13:19:02 +00:00
Jonas Maebe
3e047d3691 * generate more efficient code for trunc(currency), trunc(comp), and
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: trunk@47854 -
2020-12-27 13:18:47 +00:00
florian
33afecd117 + support got modifier on labels
git-svn-id: trunk@47851 -
2020-12-26 18:51:45 +00:00
florian
6db164c993 * min/max optimization needs to check both operands of the if condition, even if no else-statement is passed, resolves #38249
git-svn-id: trunk@47843 -
2020-12-23 22:41:37 +00:00
svenbarth
cbe352808a * fix for Mantis #38238: when creating a copy of a procdef for a procvar set the methodpointer flag also for methods of records
+ added test

git-svn-id: trunk@47826 -
2020-12-20 22:41:27 +00:00
florian
072be7b0f7 * Aarch64: fix 32 bit div operations with constant denominators, resolves #38225
git-svn-id: trunk@47812 -
2020-12-18 21:39:35 +00:00
svenbarth
2a897f5b6b * apply slightly adjusted patch by Blaise.ru which moves parsing of result types to a separate functions thus ensuring that File types can't be used for procedure variables (just like they already couldn't be used as a result type for normal functions)
+ added test

git-svn-id: trunk@47810 -
2020-12-18 13:50:39 +00:00
florian
80f87edffd * x86-64: correctly translate and with large constants in mod optimizations, resolves #38164
git-svn-id: trunk@47805 -
2020-12-17 22:09:23 +00:00
svenbarth
d29f95d9e1 * apply patch by Blaise.ru to allow specializations for the result type of function and method variables
+ added tests

git-svn-id: trunk@47795 -
2020-12-16 21:43:30 +00:00
svenbarth
32938dde1c * apply patch by Blaise.ru to allow record methods to be assigned to method variables as well (this is Delphi compatible)
+ added test

git-svn-id: trunk@47794 -
2020-12-16 21:43:25 +00:00
florian
2e2f2eb784 - remove could which prevented that rte is triggered even if we are inside
an exception block but *without* using sysutils. The remove code
    was once added to have primitive exception handling even if
    no sysutils is used. But if this is desired, an appropriate handler
    to ErrorProc should be assigned. Resolves #38201

git-svn-id: trunk@47775 -
2020-12-14 21:55:42 +00:00
florian
53a4e6c513 * patch by Zoran Vučenović: fixes TDoubleRec.SetFrac, resolves #38202
+ test

git-svn-id: trunk@47765 -
2020-12-12 21:39:17 +00:00
yury
67284c7452 + Added a test for proper setting of fc_no_direct_exit in flowcontrol.
git-svn-id: trunk@47755 -
2020-12-11 14:17: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
florian
a16b34d951 * test for min/max intrinsics
git-svn-id: trunk@47697 -
2020-12-06 14:19:00 +00:00
florian
e60a367f1b + project file for PowerPC64LE
git-svn-id: trunk@47694 -
2020-12-06 10:23:17 +00:00
svenbarth
deaff6f7fe * fix for Mantis #38151: when a Variant is passed by reference to a IDispatch property then invoke it using DISPATCH_PROPERTYPUTREF instead of DISPATCH_PROPERTYPUT
+ added test

git-svn-id: trunk@47687 -
2020-12-04 22:07:39 +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
svenbarth
3597696e98 * fix for Mantis #38145: allow overloading of assignment operators that return ShortStrings with a specific size
+ added tests

The following rules for using these operator overloads as *implicit* overloads apply (Delphi compatible):
  - if a found assignment operator returns a default ShortString then that is used
  - if only one assignment operator to a String[x] is found then that is used
  - otherwise the assignment is not possible
The explicit assignment checks for an exact match (and falls back for an implicit assignment). This is not entirely Delphi compatible as Delphi seems to favor the first found symbol in that case, but sometimes also not... :/

git-svn-id: trunk@47634 -
2020-11-29 15:47:52 +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
florian
7b88d1127f * remove unused file
git-svn-id: trunk@47619 -
2020-11-28 13:41:44 +00:00
Tomas Hajny
74eb7b5050 + added coloured compiler output support for OS/2 and DOS targets, platform-specific parts refactored to a standalone unit to remove the heap of ifdefs in unit comphook
git-svn-id: trunk@47566 -
2020-11-24 23:09:01 +00:00
florian
9dcf85a8ef + Xtensa: FMA support
git-svn-id: trunk@47563 -
2020-11-24 20:59:47 +00:00
nickysn
44b7a1df18 + support reading .wav with an odd (uneven) fmt chunk size
git-svn-id: trunk@47545 -
2020-11-24 00:31:16 +00:00
Tomas Hajny
95394d7f98 + added TZ variable based offset calculation
git-svn-id: trunk@47535 -
2020-11-23 01:08:39 +00:00
svenbarth
c20cbcc28f + add test to check whether ComObj correctly dispatches Ansi-, Unicode- and WideString arguments
git-svn-id: trunk@47519 -
2020-11-21 20:17:14 +00:00
nickysn
94f8971e73 + added tests with 32-bit and 64-bit IEEE floating point .wav files
git-svn-id: trunk@47466 -
2020-11-20 03:31:15 +00:00
nickysn
46b35256bd + support reading .wav files that have extra data in the end of the 'fmt '
chunk. Added test case, which is a file, generated by the Euphoric emulator.

git-svn-id: trunk@47461 -
2020-11-19 23:05:25 +00:00
Károly Balogh
84e1be805c qlunits: updated QDOS unit, added a QLfloat unit to convert longints and doubles to 48bit QLfloats, added a rotating cube example
git-svn-id: trunk@47456 -
2020-11-19 05:08:12 +00:00
nickysn
a552fc6d94 + fcl_sound wav reader tests: added stereo .wav file tests
git-svn-id: trunk@47454 -
2020-11-19 03:26:37 +00:00
Károly Balogh
9d67adcbb6 * regenerated all Makefiles after Sinclair QL support was added
git-svn-id: trunk@47453 -
2020-11-19 02:58:27 +00:00
nickysn
188054d9b4 + also check the actual PCM wave data in the fcl-sound wavreader test
git-svn-id: trunk@47452 -
2020-11-19 02:56:49 +00:00
nickysn
bed8b8bfd3 + created some tests for fcl-sound
git-svn-id: trunk@47447 -
2020-11-19 01:10:36 +00:00
florian
103b44cf2b * made Compiler Options window large enough to show all CPUs
+ project file for IDE targetting arm
  * write binary to bin/<full target>/fp

git-svn-id: trunk@47446 -
2020-11-18 21:19:14 +00:00
florian
6380df9b42 * correctly simplify tree transforms of (a+c1+c2) if a is a pointer, resolves #37671
git-svn-id: trunk@47437 -
2020-11-16 21:47:19 +00:00
florian
878f6d9ce4 * allow generic parameters as iterator variable in for in loops, resolves #38050
git-svn-id: trunk@47425 -
2020-11-15 19:10:34 +00:00
svenbarth
3d2ee097b5 * fix for Mantis #38083: ensure that the sp_generic_dummy flag is set correctly on the new procsym when replacing a dummy sym
+ added test

git-svn-id: trunk@47424 -
2020-11-15 16:27:26 +00:00