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
28bdb364f0
* remove readln
...
git-svn-id: trunk@47460 -
2020-11-19 21:37:23 +00:00
florian
b0deefec45
* do not run the test, it is only about a compilation issue
...
git-svn-id: trunk@47442 -
2020-11-17 20:32:10 +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
florian
089e13396a
* ensure that changed compiler options do not cause values
...
ending up in registers which cannot be hold in registers
git-svn-id: trunk@47415 -
2020-11-14 18:40:58 +00:00
florian
bf7961a901
* fixes for nasm writer, resolves #38074
...
+ test
git-svn-id: trunk@47413 -
2020-11-13 21:39:16 +00:00
svenbarth
f75e6d8a48
* fix copy-paste mistake from Mantis (due to replacement of '#' with links...)
...
git-svn-id: trunk@47387 -
2020-11-11 08:28:37 +00:00
Jonas Maebe
091b0fde0c
* fixed type of size parameter passed to fpc_getmem() when translating
...
new(pointer) (mantis #38054 )
git-svn-id: trunk@47355 -
2020-11-08 22:42:38 +00:00
svenbarth
c496b609d1
* fix for Mantis #38051 : make Chr() a real intrinsics so that it can be used in type declarations as well
...
+ added test
git-svn-id: trunk@47353 -
2020-11-08 22:23:02 +00:00
Jonas Maebe
49fbe53cf3
+ test for mantis #36381 (seems already fixed)
...
git-svn-id: trunk@47337 -
2020-11-07 16:09:51 +00:00
florian
0bf1af08c4
+ test for #38022
...
git-svn-id: trunk@47304 -
2020-11-03 21:44:57 +00:00
florian
1266afc0d0
* in equal_genfunc_paradefs take care of the fact that typesym might not be assigned for open array parameters, resolves #38012
...
git-svn-id: trunk@47253 -
2020-10-29 21:00:03 +00:00
florian
dfaee4f04b
* patch by Jan Bruns to solve an issue with the new overloading selection code, resolves #37969
...
git-svn-id: trunk@47211 -
2020-10-26 20:58:24 +00:00
Jonas Maebe
14b44f5179
* don't run interactive test
...
git-svn-id: trunk@47159 -
2020-10-23 15:09:31 +00:00
florian
4afa4a73c6
+ ISO mode: accept put/get without parameter, works on Input/Output respectively, resolves #37949
...
git-svn-id: trunk@47147 -
2020-10-20 21:03:51 +00:00
Jonas Maebe
099134b545
* fix try_make_mul32to64() if it's called with a constant node on the
...
left (mantis #37878 )
o can happen if use_generic_mul32to64 returns false
git-svn-id: trunk@47142 -
2020-10-19 19:10:16 +00:00
florian
a19ec44b97
* patch by Bart Broersma: avoid unsigned wrap around in TDeque.Erase, resolves #37482
...
git-svn-id: trunk@47122 -
2020-10-17 20:35:20 +00:00
florian
15695b317c
* denormalized value floating point exception has to result in an rte 206, resolves part of #37926
...
git-svn-id: trunk@47114 -
2020-10-15 19:52:57 +00:00
svenbarth
e90cf131fe
* fix for Mantis #37844 : prefer to use the symtable determined in generate_specialization_phase1 for procdefs as that might a withsymtable that is needed to correctly load Self later on
...
+ added test
git-svn-id: trunk@47101 -
2020-10-12 16:55:14 +00:00
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