florian
c2c7c23f21
* fix #35841 also for break and continue
...
git-svn-id: trunk@47070 -
2020-10-09 20:55:38 +00:00
florian
73c041a854
* patch by J. Gareth Moreton: propagate exit use in nested try...except statements,
...
resolves #35841
git-svn-id: trunk@47066 -
2020-10-08 20:38:19 +00:00
florian
284aca7348
+ x86: FstpFld2Fst optimization (re-enabled for safe cases)
...
git-svn-id: trunk@47024 -
2020-09-30 19:20:14 +00:00
florian
e124b07e86
+ evaluate typeinfo(<type1>)=/<>typeinfo(<type2>) at compile time, resolves #30260
...
git-svn-id: trunk@47008 -
2020-09-29 20:14:27 +00:00
florian
1a2b99bc09
* correctly reset fpu on x86_64-linux after a floating point exception, resolves second part of #37468
...
git-svn-id: trunk@46992 -
2020-09-28 20:50:25 +00:00
Jonas Maebe
f3e140fc50
* test for mantis #34543 (already fixed)
...
git-svn-id: trunk@46988 -
2020-09-28 14:01:55 +00:00
florian
e1536bdf26
* when implicit try...finallys are turned off, do not throw an error if a procedure
...
is left which would need but does not have an implicit try...finally block, resolves #37823
git-svn-id: trunk@46974 -
2020-09-27 16:53:59 +00:00
florian
a628c1c3dd
* if an array constructor is passed to a formaldef parameter, it is passed as a set (if the conversion is possible), resolves #37796
...
git-svn-id: trunk@46973 -
2020-09-27 16:37:20 +00:00
svenbarth
cce2dad1bf
* fix for Mantis #37806 : allow undefineddefs for Include() and Exclude()
...
+ added tests
git-svn-id: trunk@46953 -
2020-09-25 14:13:53 +00:00
svenbarth
ff4e1345ff
* fix for Mantis #37779 : use init RTTI instead of full RTTI when copying an array
...
+ added test
git-svn-id: trunk@46915 -
2020-09-21 20:17:55 +00:00
Jonas Maebe
aa75d39ab5
* don't perform "(x=y) or (z=u)" -> "(x xor y) or (z xor u)" optimization
...
if z or u may raise exceptions (mantis #37780 )
git-svn-id: trunk@46905 -
2020-09-20 12:43:45 +00:00
florian
e83d214e98
+ allow in ISO mode that { ... } and (* ... *) comments are paired, resolves at least partly #37428
...
git-svn-id: trunk@46903 -
2020-09-20 08:47:00 +00:00
florian
f8c1df0852
* ISO mode: handle typed files as text files regarding naming/program parameters, resolves #37415
...
git-svn-id: trunk@46865 -
2020-09-14 20:16:08 +00:00
Jonas Maebe
cc315e0ac7
* fix tw3930 after r37927
...
o "unique" class (and interface) type aliases should actually not exist at
all except for overload resolution. All the rest (VMT, UUID, RTTI, ...)
should be taken from the aliased class/interface
o there is one Delphi-incompatibily left after this change, but it shouldn't
matter: tw8180 does not compile if you change the declaration to
"tcl=class(TInterfacedObject,XStr,iinterface)", while Kylix does compile
that. It doesn't really matter though, because in Kylix this actually
adds iinterface twice as implemented interface, so there is no point
in accepting this.
git-svn-id: trunk@46773 -
2020-09-05 12:25:09 +00:00
svenbarth
b2177fb50e
* fix for Mantis #37650 : apply adjusted patch by Ryan Joseph do not range check the length of ShortStrings if their length parameter is based on a generic constant
...
+ added test
git-svn-id: trunk@46766 -
2020-09-04 15:44:23 +00:00
Jonas Maebe
ac18c0090a
* non-zero exit code on failure
...
git-svn-id: trunk@46661 -
2020-08-23 11:31:16 +00:00
Jonas Maebe
d1d3d7cd08
* never create a regular temp for inline parameters that can be modified by
...
the caller (mantis #37465 )a
o in theory, the regular checks for doing so should never trigger, but due
to compiler-generated nodes (such as calls to fpc_ansistr_unique), they
could. Internal address nodes can deal with taking the address of the
function result in this case.
git-svn-id: trunk@46660 -
2020-08-23 11:27:59 +00:00
yury
2ab7cceeaa
* Added the $F+ switch (forced far calls) for some TP mode tests.
...
git-svn-id: trunk@46456 -
2020-08-16 10:48:10 +00:00
svenbarth
fbb8e161fa
+ add test for already fixed Mantis #37286
...
git-svn-id: trunk@46408 -
2020-08-13 05:42:32 +00:00
florian
43d66a4ac8
* it's usefull to enable the test for all platforms
...
git-svn-id: trunk@46406 -
2020-08-12 21:15:35 +00:00
florian
cdd80c131d
+ forgotten test
...
git-svn-id: trunk@46405 -
2020-08-12 21:13:58 +00:00
florian
6dac888ae5
* 0 is a valid label in iso mode, resolves #37428
...
git-svn-id: trunk@46362 -
2020-08-11 12:05:13 +00:00
Jonas Maebe
b3adeaaea9
* added test for bug that's already fixed (mantis #37423 )
...
git-svn-id: trunk@46334 -
2020-08-08 17:45:41 +00:00
florian
d7ba09f543
* insert type casts when creating new unaryminus nodes during simplification, resolves #37508
...
git-svn-id: trunk@46309 -
2020-08-07 21:43:00 +00:00
florian
af1e6fde5c
* setelementn cannot be the root node of a cse domain, resolves #37477
...
git-svn-id: trunk@46299 -
2020-08-06 20:49:07 +00:00
florian
e14a3f17e6
* reverted r46220 as it is fixed now properly
...
git-svn-id: trunk@46276 -
2020-08-05 21:15:33 +00:00
svenbarth
c17ad509e2
* fix for Mantis #36775 : apply patch by J. Gareth Moreton
...
+ added tests
git-svn-id: trunk@46220 -
2020-08-03 21:53:29 +00:00
svenbarth
8770af84bd
* fix for Mantis #37187 : inside generics the constant code in pexpr does not handle all cases and thus current_procinfo needs to be checked as well
...
+ added test
git-svn-id: trunk@46218 -
2020-08-03 21:53:14 +00:00
florian
7281ea7a2c
* floating point division by zero should throw run time error 208, fixed
...
git-svn-id: trunk@46210 -
2020-08-03 19:42:16 +00:00
florian
eac6675cba
* reset exception flags, resolves #37468 on x86_64
...
git-svn-id: trunk@45995 -
2020-08-02 21:23:29 +00:00
svenbarth
b412259c1c
* fix for Mantis #37355 : the method name and the named parameters need to be separated by a single #0
...
+ added test
git-svn-id: trunk@45974 -
2020-07-31 15:55:37 +00:00
florian
42f2e5f8ad
+ simplify "x mod -1", resolves #37449
...
git-svn-id: trunk@45969 -
2020-07-30 20:35:34 +00:00
florian
0b5c50ea41
* Aarch64: set register size correctly for AndStrb2Strb optimization, resolves #37427
...
git-svn-id: trunk@45872 -
2020-07-28 20:46:05 +00:00
florian
3db2794598
+ add test for #31714 which is already fixed
...
git-svn-id: trunk@45859 -
2020-07-25 21:08:58 +00:00
florian
ed158f1e52
* set register size correctly for popcnt(<byte>), resolves #37400
...
git-svn-id: trunk@45828 -
2020-07-22 20:47:12 +00:00
florian
5da913de0e
* float operations can have an exception as a side effect, resolves #37398
...
git-svn-id: trunk@45824 -
2020-07-21 20:09:39 +00:00
Jonas Maebe
dd6e6eb26a
* disable tail recursion optimisation if there is a copy-back parameter
...
* handle fparainit in tail recursion optimisation (mantis #37397 )
git-svn-id: trunk@45823 -
2020-07-21 17:57:50 +00:00
florian
13cb57b2c3
+ Aarch64: trgcpu.get_spill_subreg: return MM sub register correctly, resolves #37393
...
git-svn-id: trunk@45814 -
2020-07-20 21:07:09 +00:00
florian
a57f3ba396
* patch by Sergey Larin to handle Native(U)Int conversions from/to variants, resolves #37339
...
git-svn-id: trunk@45797 -
2020-07-16 20:44:30 +00:00
florian
f6f5cb45a3
+ strip leading zeros in numeric labels in iso/extended pascal mode also in label declarations, resolves #37323
...
git-svn-id: trunk@45764 -
2020-07-11 07:12:37 +00:00
florian
392d66a9ce
* variables can have the same name as the main program in iso mode, resolves #37322
...
git-svn-id: trunk@45757 -
2020-07-10 21:05:59 +00:00
florian
f65f1bd802
* fix test to check result properly as pointed out by Bi0T1N in the bug tracker
...
git-svn-id: trunk@45739 -
2020-07-07 20:22:00 +00:00
florian
3caacc529a
* fix abs() intrinsic optimisation, resolves #37301
...
git-svn-id: trunk@45732 -
2020-07-05 09:19:14 +00:00
florian
ff295bf349
* delay setting of pd_body and pd_implement till the header of a generic
...
procedure is parsed, resolves #37261
git-svn-id: trunk@45717 -
2020-06-30 20:36:51 +00:00
florian
d41f4c7c4e
* correctly handle sign/zero extensions for optimization "var3", resolves #37254
...
git-svn-id: trunk@45713 -
2020-06-29 20:36:54 +00:00
svenbarth
eaa2a2006c
* fix for Mantis #37272 : also allow the empty set for dynamic array parameters; Delphi probably started to allow that together with array constructors.
...
+ added tests
git-svn-id: trunk@45706 -
2020-06-27 22:33:31 +00:00
florian
cb11e2568d
+ Xtensa: patch by Christo Crause to add optional MAC16 registers, resolves #37130
...
git-svn-id: trunk@45679 -
2020-06-22 19:05:13 +00:00
Jonas Maebe
3cb341eabc
* ensure that dispose(managed_ptr) does not result in multiple evaluations of
...
the managed_ptr expression
git-svn-id: trunk@45673 -
2020-06-21 15:10:38 +00:00
florian
a7c0fa0def
o patch for Xtensa by Christo Crause, resolves #37099
...
+ Added postfix parsing in tattreader.GetToken
- Removed all postfixed versions of OpCodes from the instruction list
+ Added all missing OpCodes from Xtensa ISA
* Changed branch OpCode to A_B, similar to ARM
+ Added missing branch condition flags BCI and BSI
* Updated existing compiler code that referred to the old postfixed instructions
+ Added prefix and postfix handling in TxtensaInstrWriter.WriteInstruction
* Updated TCPUAddNode.second_addfloat to specify .S postfix
* Updated tcpuunaryminusnode.second_float to specify .S postfix
+ Implemented prefix and postfix identification in txtensaattreader.is_asmopcode
* Adapted branch condition extraction to respect postfixes
* Changed itcpugas to call findreg_by_name_table from raatt.pas (same as issue #0037121 , difficult to test these changes without including a fix for the register name search problem)
git-svn-id: trunk@45672 -
2020-06-21 14:51:40 +00:00
florian
80111a0a60
* make local variables in assembler blocks working again after r44933
...
* test for #37218
git-svn-id: trunk@45667 -
2020-06-20 20:17:53 +00:00