Commit Graph

2598 Commits

Author SHA1 Message Date
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