Jonas Maebe
744facb7fc
* properly support accepting register parameters of assembler routines in
...
the intel assembler reader: no longer parse them as register tokens,
but as local operands that are later converted into registers. This
ensures in particular that the type of the operand is set, which is
necessary in case this operand later subscripted (as in tasm10a)
git-svn-id: trunk@36288 -
2017-05-21 20:17:15 +00:00
svenbarth
d073e07244
+ add a test to ensure that array constructors correctly handle managed types (though there might be a temp floating around for longer than one might expect)
...
git-svn-id: trunk@36243 -
2017-05-18 20:04:29 +00:00
pierre
c0fd038eaa
Start getmem calls with smaller memory chuncks for CPU16 like i8086
...
git-svn-id: trunk@36240 -
2017-05-18 08:47:03 +00:00
pierre
eea65cd31f
+ Add UseSignals macro, which conditionally adds
...
code using signals unit to try to interrupt runaway executables
+ Global DosBoxProcess TProcess class variable.
+ Display modified lines inside dosbox.conf if verbose
* Try to use Terminate when program exceeds dosbox_timeout (in seconds)
* Handle signals if UseSignals macro is set.
git-svn-id: trunk@36231 -
2017-05-16 20:56:29 +00:00
pierre
02eafd63c4
Add disablesplash=true
...
git-svn-id: trunk@36230 -
2017-05-16 20:51:36 +00:00
pierre
78361f5900
Fix test for msdos targets
...
git-svn-id: trunk@36229 -
2017-05-16 20:36:49 +00:00
svenbarth
c90fbe1bf0
* fix for Mantis #31795 : append a $ to internal functions init, finalize, init_implicit and finalize_implicit as their section names otherwise look the same as those of user declared functions with the same name
...
+ added test
git-svn-id: trunk@36194 -
2017-05-12 13:32:37 +00:00
svenbarth
23ec3db057
+ added test for Mantis #30498 which is working now that array constructors are supported :)
...
git-svn-id: trunk@36193 -
2017-05-12 12:57:49 +00:00
svenbarth
5971e1327e
* fix for Mantis #31756 : have array constructors prefer open array parameters instead of dynamic array parameters for backwards compatibility
...
+ added test
git-svn-id: trunk@36175 -
2017-05-10 21:01:23 +00:00
pierre
6416864997
Revert wrong patch, which lead to an endless loop on linux systems, as directories are modified by each file additions
...
git-svn-id: trunk@36169 -
2017-05-10 08:43:58 +00:00
pierre
e6aa46f7f9
Add explicit dependency of gparmake and createlst executables to the units/FULL_TARGET subdirectory creation to avoid errors
...
git-svn-id: trunk@36167 -
2017-05-10 06:29:18 +00:00
nickysn
504662826a
* fixed the rtl cpu ifdefs for the rol/ror/sar cpu support check
...
git-svn-id: trunk@36153 -
2017-05-08 10:16:15 +00:00
nickysn
4a8a7c210a
* fixed test on platforms that don't have 8-bit and 16-bit rol/ror
...
git-svn-id: trunk@36144 -
2017-05-07 13:34:26 +00:00
florian
b3f889e028
* -Ox options are incremental, so disable all optimizations first in case testing is run with -O4
...
git-svn-id: trunk@36135 -
2017-05-06 18:47:41 +00:00
maciej-izak
6d1ad52dc5
* for symbols used in preprocessor expressions, we don't want to increase references count (for smaller final binaries). Partial fix for problem presented in mantis 31675. Preprocessor functions like declared() in uses section will work only for symbols declared in implicytly included modules (for example like for heaptrc by option -gh, see example/test tw31675.pp)
...
+ added tests
git-svn-id: trunk@36128 -
2017-05-05 22:27:07 +00:00
nickysn
c28d533bb0
+ support the cmpsd sse instruction in the at&t inline assembly reader
...
git-svn-id: trunk@36124 -
2017-05-05 15:46:47 +00:00
svenbarth
c552b2957a
* implement support for 4 Byte UTF-8 codepoints that result in a surrogate pair for UTF-16
...
git-svn-id: trunk@36116 -
2017-05-05 14:03:57 +00:00
svenbarth
52ddce608f
+ add test for enumerating a set without ranges
...
git-svn-id: trunk@36105 -
2017-05-04 22:00:29 +00:00
svenbarth
c349151504
+ add test for array constructors
...
git-svn-id: trunk@36104 -
2017-05-04 21:59:49 +00:00
michael
dff39e9ecb
* Fix test case
...
git-svn-id: trunk@36060 -
2017-05-02 14:03:56 +00:00
nickysn
881cb790a9
+ added tests that check side effect removal behaviour for the simplifications
...
added/changed today
git-svn-id: trunk@36053 -
2017-05-01 21:01:26 +00:00
nickysn
7821d729cd
+ a very basic test for correctness for the various simplifications, implemented
...
today. It does not check for side effects and thus it should work at any
optimization level, regardless of whether each optimization is done or not.
git-svn-id: trunk@36048 -
2017-05-01 20:17:07 +00:00
pierre
c2ec612f1f
Makefiel regenerated after commit 35943: Add testppudump rule in tests/tstunits directory
...
git-svn-id: trunk@35944 -
2017-04-24 21:16:51 +00:00
pierre
ca23830b56
Add testppudump rule in tests/tstunits directory
...
git-svn-id: trunk@35943 -
2017-04-24 21:16:15 +00:00
nickysn
5393daa994
+ added compile time const evaluation for Bsf/Bsr(const) as well
...
git-svn-id: trunk@35941 -
2017-04-24 20:35:08 +00:00
nickysn
32395bbcbb
+ added compile time const evaluation optimization for PopCnt(const)
...
git-svn-id: trunk@35937 -
2017-04-24 16:11:43 +00:00
florian
50dba9ad66
* if both labels of a case label are equal, we still cannot skip the comparison in a jump tree, resolves #31589
...
git-svn-id: trunk@35880 -
2017-04-21 19:32:27 +00:00
pierre
17b2671213
Regenerate all Makefile's after changes related to FPCDIR checks
...
git-svn-id: trunk@35833 -
2017-04-18 14:15:47 +00:00
nickysn
256dc546ac
+ implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
...
be used (TBD in a future commit) for optimizing x:=-x and x:=not x on CPUs
that support performing these operations directly in memory (such as x86)
git-svn-id: trunk@35749 -
2017-04-07 16:02:40 +00:00
maciej-izak
ff28d5c85d
* Fix usage of class operators in generics types. If we have generic type declaration/implementation then constraint in comparison to not specialized generic is not "exact" nor "incompatible". Mantis #30534 .
...
git-svn-id: trunk@35740 -
2017-04-05 13:47:21 +00:00
maciej-izak
e4565378db
* Allow for "record constraint" in Delphi mode more types like: ordinal, float, classical objects, enumerations (instead of just record). Delphi compatibility. Fix for mantis #24073 .
...
git-svn-id: trunk@35739 -
2017-04-05 13:12:30 +00:00
maciej-izak
8391b73206
* Virtual methods cannot be declared as static (static virtual method has no sense).
...
+ added tests
git-svn-id: trunk@35724 -
2017-04-03 20:45:52 +00:00
nickysn
f19ebe2acf
* fixed compiler internal error in the in_[and/or/xor]_assign_x_y inline nodes
...
when their second parameter is a large 64-bit unsigned constant
git-svn-id: trunk@35684 -
2017-03-29 14:55:07 +00:00
sergei
8ae0864c9a
* x86 Intel asm reader: handle special variables "self" and "result" similar to regular ones in terms of subscripting. This makes fix from r34911 apply to these special variables. Resolves #31542 .
...
git-svn-id: trunk@35669 -
2017-03-27 19:58:55 +00:00
nickysn
fc59649a98
+ added inline nodes for handling and/or/xor in place (i.e. x:=x op y, where
...
op=and/or/xor). They generate more optimal code on certain architectures
(including x86). The new inline nodes aren't generated by the compiler yet,
but will be used in the future, at certain optimization levels, whenever the
pattern x:=x op y is detected by the compiler.
git-svn-id: trunk@35666 -
2017-03-26 23:16:53 +00:00
florian
0897bd154a
+ align(<int64>,<int64>) and align(<qword>,<qword>), resolves an issue reported on the mailing list with large records
...
+ tests
* trecordsymtable.insertunionst takes a asizeint parameter
* changed one aint into a asizeint
git-svn-id: trunk@35662 -
2017-03-26 09:35:56 +00:00
svenbarth
34327000d8
+ add test for Mantis #31521 which is already fixed, though I don't know which revision did it...
...
git-svn-id: trunk@35656 -
2017-03-25 13:41:27 +00:00
florian
0cf5ef459d
+ tcgtypeconvnode.second_class_to_intf supports LOC_CONSTANT as well, resolves #31596
...
git-svn-id: trunk@35655 -
2017-03-25 10:27:29 +00:00
florian
e8f7c9dfdd
+ test for large case statements
...
git-svn-id: trunk@35646 -
2017-03-23 17:57:31 +00:00
sergei
2357ca1fe6
* Fixed size suffix generated for CVTSI2SS, CVTSI2SD, VCVTSI2SS, VCVTSI2SD instructions. Mantis #31550 .
...
* tasm2.pp already detected this bug if run with -al option. Added a copy of tasm2.pp and configured it with -al, so it is run daily on all suitable machines.
git-svn-id: trunk@35626 -
2017-03-19 10:29:28 +00:00
florian
ad557a1da6
* allow call dword ptr eax in delphi, resolves #18225
...
git-svn-id: trunk@35572 -
2017-03-12 16:37:48 +00:00
florian
bb8b8f2eae
* do not set IsMultithread on windows, if no second thread is started, resolves #30535
...
git-svn-id: trunk@35567 -
2017-03-11 21:35:48 +00:00
yury
4ec547301d
* Set both DefaultSystemCodePage in runtime and source file code page to 1252 in order the test perform correctly on all systems.
...
git-svn-id: trunk@35554 -
2017-03-09 20:37:16 +00:00
florian
5dd6232c0e
* fix test for case sensitive file system, resolves #31452
...
git-svn-id: trunk@35543 -
2017-03-08 20:18:25 +00:00
michael
9787c44c78
* Additional tests from Karl-Michael Schindler
...
git-svn-id: trunk@35521 -
2017-03-04 17:06:27 +00:00
svenbarth
49e78ac5df
* test doesn't need to run
...
git-svn-id: trunk@35511 -
2017-03-03 21:50:06 +00:00
svenbarth
7dc4f16db3
* fix for Mantis #31431 : allow specializations to allow private/protected variables that their generic could have accessed
...
git-svn-id: trunk@35510 -
2017-03-03 21:45:29 +00:00
svenbarth
ece13bcc5a
* fix for Mantis #31465 : only consider non-static fields when checking whether a record may be used with Default()
...
+ added test (Note: the test fails due to missing = operator, but without the fix there was a stack overflow)
git-svn-id: trunk@35508 -
2017-03-03 17:03:46 +00:00
maciej-izak
16a11c8b7a
Bug fix for getting pointer to function result (mantis #10933 #19861 )
...
git-svn-id: trunk@35495 -
2017-03-01 13:23:02 +00:00
Jonas Maebe
1adde89621
* copy tcallnode.right after copying the callinitblock, as right can be a
...
temprefnode referring to a temp from the init block (mantis #31421 )
git-svn-id: trunk@35478 -
2017-02-24 19:57:40 +00:00
michael
cc81abdd83
* Patch from Michal Gawrycki to implement streaming interface properties (IComponent) Bug ID
...
git-svn-id: trunk@35474 -
2017-02-22 21:14:35 +00:00
florian
b9dba41ad0
* intel assembler reader: scale factor in references can also be a constant symbol, resolves #31165
...
git-svn-id: trunk@35473 -
2017-02-22 20:59:52 +00:00
maciej-izak
533c89e128
* New test for management operators to detect regressions like regression fixed in r35461 (many times initialized global variables)
...
git-svn-id: trunk@35463 -
2017-02-21 14:20:15 +00:00
florian
a80fcb74d8
* make test working for architectures with no float and ansistring support
...
git-svn-id: trunk@35460 -
2017-02-19 22:29:52 +00:00
maciej-izak
92c0e57c59
* Test suite for management operators. We have management operators on trunk! Enjoy ^^
...
git-svn-id: trunk@35452 -
2017-02-19 14:34:09 +00:00
florian
3d6d5145bf
* fix handling of const string symbols in preprocessor expressions
...
+ accept string constants in preprocessor expressions, resolves #31246
git-svn-id: trunk@35432 -
2017-02-12 17:29:45 +00:00
Jonas Maebe
265c8e7bbc
+ support for specifying ms_abi_default, ms_abi_cdelc, sysv_abi_default, and
...
sysv_abi_cdecl calling conventions on x86-64 to force using the SYSV/
Microsoft ABI on platforms that don't use it by default (mainly to ease
porting pure assembler routines)
git-svn-id: trunk@35425 -
2017-02-11 19:57:12 +00:00
svenbarth
58abeb4a34
* also test IIDStr of raw interfaces
...
git-svn-id: trunk@35414 -
2017-02-10 16:06:47 +00:00
svenbarth
9ead39404b
+ print headers for the tested interfaces
...
git-svn-id: trunk@35413 -
2017-02-10 16:06:18 +00:00
svenbarth
6418f22ae0
* enable raw interface testing
...
git-svn-id: trunk@35412 -
2017-02-10 16:05:35 +00:00
maciej-izak
1d301b6dbe
More consequent writing of Rtti. Part of code related to recorddef moved from recorddef_rtti to write_child_data_rtti(). When typeinfo is used in code init Rtti is a child of the full Rtti. Commit also contains correction for code commited for mantis #31249 (r35376) and mantis #31305 (r35377) for objects. Before was impossible to compile code with usage of typeinfo() function for object without managed fields ("Undefined symbol" error).
...
+ Test attached
git-svn-id: trunk@35403 -
2017-02-06 18:52:37 +00:00
florian
41b028ffc0
* unpcklp* require aligned memory, so do not spill replace their first operand by a memory location, resolves #31332
...
git-svn-id: trunk@35400 -
2017-02-05 20:59:54 +00:00
Jonas Maebe
6d5339cdb6
* CP819/IBM819 should be mapped to Windows code page 28591 (ISO8859-1)
...
(mantis #30639 )
git-svn-id: trunk@35397 -
2017-02-04 22:44:36 +00:00
svenbarth
11493de99b
+ add test from Mantis #31305 for completeness sake
...
git-svn-id: trunk@35377 -
2017-01-31 18:24:00 +00:00
svenbarth
c1390b3442
* fix for Mantis #31249 : applied (adjusted) patch provided by Maciej Izak
...
Commit message:
[PATCH] More consistent RTTI (also better performance) for classic
objects (reference to initrtti from fullrtti).
git-svn-id: trunk@35376 -
2017-01-31 18:21:53 +00:00
svenbarth
c2d68e35b5
* also assume register calling convention for m68k
...
git-svn-id: trunk@35352 -
2017-01-28 14:55:41 +00:00
svenbarth
26135d605f
+ implement interface RTTI inspired by the changes from Steve Hildebrandt, yet not exactly the same. Like his implementation this one isn't Delphi compatible either.
...
+ added test
git-svn-id: trunk@35341 -
2017-01-27 17:00:15 +00:00
svenbarth
4742e826f6
+ add test for Mantis #23702 , just to be sure that we don't re-add that already solved problem
...
git-svn-id: trunk@35335 -
2017-01-27 13:58:54 +00:00
Jonas Maebe
048666a25c
* when freeing a procdef that hasn't been registered for writing to the ppu
...
at the end of compiling a unit, also remove it from its owning procsym
in case the procsym does get written to the ppu (possible because you
can have extra overloads in the implementation) (mantis #25283 )
o also fixes webtbf/tw4103 on the platforms where this still failed
(on the platforms where it worked, it worked by accedent since the
compiler was accessing memory of a freed procdef)
git-svn-id: trunk@35309 -
2017-01-15 17:41:27 +00:00
Jonas Maebe
382bbc1201
- removed gotderef from valid_for_assign(), and return true at every place
...
where it used to be set to true (dereferencing a pointer always means
that regardless of what the pointer was, the resut is assignable)
(mantis #22979 )
o also removed gotpointer, since it was only used in combination with
gotderef
git-svn-id: trunk@35308 -
2017-01-15 16:32:51 +00:00
svenbarth
fd465ff500
* adjusted tests as SizeOf(TParamFlags) = 1 does not need to be true anymore
...
git-svn-id: trunk@35264 -
2017-01-08 12:43:59 +00:00
svenbarth
25842d70c8
* adjust test so it also checks the full ParamFlags instead of only the reduced one
...
git-svn-id: trunk@35263 -
2017-01-08 12:42:17 +00:00
florian
1bea9e36eb
+ entropy test for random
...
git-svn-id: trunk@35260 -
2017-01-08 10:26:12 +00:00
florian
29a2c433f7
* -Sr option for iso mode: in case no command line parameter is passed, the file name for program parameters is derived from their variable name
...
git-svn-id: trunk@35257 -
2017-01-07 14:50:58 +00:00
svenbarth
6b641394d0
* fix for Mantis #31201 : don't write any RTTI for undefined defs (and while we're at it abort if an error def is encountered)
...
+ added test
git-svn-id: trunk@35256 -
2017-01-07 14:35:25 +00:00
florian
3706ab4e44
* fix formatting of the writing of the fraction
...
git-svn-id: trunk@35235 -
2017-01-04 22:57:43 +00:00
svenbarth
150441627a
+ add test for Boolean RTTI
...
git-svn-id: trunk@35187 -
2016-12-23 16:05:57 +00:00
svenbarth
73ed1a9bf1
* fix for Mantis #31140 : applied patch by Maciej Izak; this way it's clear what purpose ManagedFldCount has in FPC compared to Delphi
...
Commit message of patch:
+ New field TotalFieldCount for TTypeData
* Mark ManagedFldCount as deprecated
* Adjusted test trtti12.pp
git-svn-id: trunk@35180 -
2016-12-23 15:32:44 +00:00
svenbarth
8e765ef807
* extend test for 64-bit subranges
...
git-svn-id: trunk@35179 -
2016-12-23 15:11:38 +00:00
svenbarth
2acf542737
* extend TParamFlag by pfConstRef which is set for constref parameters
...
* extend test trtti9.pp accordingly
git-svn-id: trunk@35175 -
2016-12-20 21:37:07 +00:00
svenbarth
d34acf3bc7
* fix for Mantis #31120 : check current_genericdef only if the current_procinfo isn't used
...
+ added test
Note: the test is added to webtbs although it's right now still failing, cause I'll remove the restriction for nested procedures since the compiler now supports them correctly. Due to the way we handle generics we don't have problems with them unlike Delphi.
git-svn-id: trunk@35147 -
2016-12-17 21:20:44 +00:00
svenbarth
a9d14fe30b
* extend TOrdType by entries for 64-bit values
...
* have tkInt64 and tkQWord entries also contain the OrdType field (basically the compiler can now use the same function to generate them only with different type kinds)
+ added test
git-svn-id: trunk@35135 -
2016-12-16 14:22:04 +00:00
svenbarth
460f309035
* fix for Mantis #31123 , applied patch by Maciej Izak
...
* adjusted test trtti10.pp due to renamed RecInitTable field
Original commit message:
Public interface for init table for records in TypInfo:
* Rename RecInitTable to RecInitInfo (because it is special kind of PTypeInfo for init table of record). Has more sense in practical usage.
+ New structure TRecInitData (and related PRecInitData) to handle data for (init) type info for records (aka init table)
+ New structure TInitManagedField and pointer type PInitManagedField (for init table)
+ Special helper property RecInitData to get PRecInitData for tkRecord
+ test attached
git-svn-id: trunk@35134 -
2016-12-16 13:43:12 +00:00
svenbarth
121a857af8
* fix for Mantis #31118 : applied patch by Maciej Izak to fix usage of wrong variable
...
+ added test
git-svn-id: trunk@35133 -
2016-12-15 13:47:26 +00:00
svenbarth
12dba952f0
* integration of Part 2 patch of Mantis #30687 with a few adjustments:
...
- indentation in ncgrtti.pas
- fewer ifdefs in rtti.inc
- InitTable/Terminator field as first field to avoid padding on targets that require proper alignment and have SizeOf(Pointer) > 4
Original message by Maciej Izak:
Breaking change for rtti layout for record rtti. Init table
is always accessible from regular rtti. Rtti table contains indirect
reference to init table, additionally init table contains nil-terminator (for
rtl purposes - the only way to determine kind of info : init or rtti). Pros:
* will be possible to create more Delphi compatible code for RTTI, finally end-user can access to *real* managed fields of records (some work on TypInfo.pp is still required but is not necessary).
* important step forward for management operators (anyway this commit is not directly related to management operators)
* much more optimal memory allocation/initialization/finalization for records created/destroyed by InitializeArray/FinalizeArray, for example:
type
TBar = record
f1,f2,f3,f4,f5,f6,f7,f8,f9: byte;
s: string;
end;
previously:
GetMem(PB, SizeOf(TBar));
InitializeArray(PB, TypeInfo(TBar), 1); // FPC_INITIALIZE was executed 10 times
now:
GetMem(PB, SizeOf(TBar));
InitializeArray(PB, TypeInfo(TBar), 1); // FPC_INITIALIZE is executed just once
+ test attached
git-svn-id: trunk@35125 -
2016-12-13 23:03:11 +00:00
svenbarth
22e579cc74
* fix for Mantis #31107 : disallow calling of ordinary record methods using the record's type.
...
git-svn-id: trunk@35113 -
2016-12-12 22:08:28 +00:00
Károly Balogh
442cbed9ad
improved tb0625. boolean casting should disregard the upper bits
...
git-svn-id: trunk@35107 -
2016-12-11 13:26:04 +00:00
svenbarth
5fa181b5d9
* second fix for Mantis #31033 : also check for df_specialization instead of is_specialization for parameters to correctly handle nested types that aren't really true specializations themselves
...
+ added additional test
git-svn-id: trunk@35103 -
2016-12-10 19:47:09 +00:00
svenbarth
0c372f0beb
* fix compilation of Rtti unit on PowerPC: converting a Int64 to a Boolean failed (in this case with an internal error)
...
+ added a test though we should probably extend tcnvint2.pp to test converting ints to different sized boolean types...
git-svn-id: trunk@35101 -
2016-12-10 19:13:07 +00:00
svenbarth
f14759356f
* regenerated Makefile after r35097
...
git-svn-id: trunk@35098 -
2016-12-09 20:48:34 +00:00
svenbarth
43d5dacf70
+ add ability to execute tests that reside in $fpcdir/packages/*/tests
...
For now only rtl-objpas is used as the tests nevertheless need to adhere to the rules: t*.pp, ExitCode for result, no parameters
git-svn-id: trunk@35097 -
2016-12-09 20:48:11 +00:00
svenbarth
52673d34f1
* fix for Mantis #31033 : don't check for is_specialization(), but for df_specialization (this way we also get pointers or nested types that aren't by themselves real specializations)
...
+ added test
git-svn-id: trunk@35092 -
2016-12-09 16:22:14 +00:00
Jonas Maebe
18077d9530
* when determining the best candidates for overloaded method calls, apply
...
the scope penalty relative to the nearest symtable that contains one of
the applicable overloads, rather than relative to the nearest symtable
that simply contains a method with this name (based on patch by
Maciej Izak, mantis #25607 )
git-svn-id: trunk@35089 -
2016-12-09 13:39:42 +00:00
sergei
8173efff3e
* x86 asm reader: Don't copy operand size to instruction size for MOVSS and VMOVSS, because it is different for source and destination. Fixes breakage caused by fixing memory size of those instructions (Mantis #29954 and Mantis #29957 ).
...
+ Tests are extended to check that both OPR_LOCAL and OPR_REF memory operands compile without warnings as source and destination, in both Intel and AT&T syntax.
git-svn-id: trunk@35081 -
2016-12-07 14:08:28 +00:00
svenbarth
d499163ef5
* provisional fix for Mantis #31076 : fail gracefully instead of with an internal error if a generic method is declared inside a generic class or record. This will change once we support nested generics however.
...
* adjusted error message to reflect that we're not only dealing with generic classes
+ added test; note: it's added in webtbs, cause the test will loose its %FAIL attribute in the future
git-svn-id: trunk@35079 -
2016-12-06 22:26:53 +00:00
svenbarth
70817baf98
* since we already allow inline specializations in mode ObjFPC due to generic functions it's only consequential to also allow specializations after pointers (they are already allowed in mode Delphi).
...
+ added tests
* tgeneric87.pp and tgeneric88.pp are no longer considered as tests that should fail
git-svn-id: trunk@35078 -
2016-12-06 21:37:22 +00:00
svenbarth
4fb77b71ec
* fix for Mantis #31029 , based on the patch provided by Silvio Clécio: PArrayOfByte is not necessary and in fact the purpose of TArrayOfByte is a different one from reference counting (namely to ensure correct passing of the parameter), so renamed accordingly (plus a comment); similar change in SetDynArrayProp. Also Get-/SetPropValue in Variants unit has been adjusted to make use of Get-/SetDynArrayProp.
...
+ added adjusted test
git-svn-id: trunk@35025 -
2016-11-30 19:32:41 +00:00
svenbarth
d9ea6aae4d
* fix for Mantis #30761 : always return the symbol found in the helper instead of doing this dependant on the presence of the overload attribute; for this the collection of all suitable overloads is done in tcallcandidates instead.
...
+ added test
git-svn-id: trunk@35024 -
2016-11-30 17:52:25 +00:00
svenbarth
6ba85c2a70
* second fix for Mantis #30626 : also search in parent classes for a suitable pre-existing specialization
...
+ added test
git-svn-id: trunk@35014 -
2016-11-29 17:04:07 +00:00
svenbarth
ebfeb5b62a
* fix for Mantis #30830 : also remove unregistered specializations from the procsym's deflist when they're removed to avoid an access to freed data
...
+ added tests (adjusted original test plus a mode Delphi variant)
git-svn-id: trunk@35012 -
2016-11-29 14:12:02 +00:00
svenbarth
bfaa26d16a
Commit r35010 also fixed Mantis #30524 .
...
+ added tests
git-svn-id: trunk@35011 -
2016-11-28 18:37:20 +00:00
svenbarth
a535d54bcb
* fix for Mantis #30939 : Rework generation of the generic name to be less relying on the type hierarchy as a specialization inside the parameter declaration would want to have the full name of the procdef including its parameters, but those are still parsed at that stage (the pretty name is still a topic onto itself however...)
...
+ added tests (original test was only mode fpc, test for mode delphi is added as well)
git-svn-id: trunk@35010 -
2016-11-28 18:16:49 +00:00
svenbarth
3f77ce3b12
* leave parse_proc_head() (with some error recovery) if the interface could not be found instead of running straight into an access violation
...
+ added test
git-svn-id: trunk@35007 -
2016-11-28 17:54:48 +00:00
florian
7bb8873c83
* do not throw an internal error if in case of an previous error the parameter class of an errordef is requested, resolves #31016
...
git-svn-id: trunk@34984 -
2016-11-27 13:16:12 +00:00
florian
48fbd569fd
* support for the CDQE instruction, by Emelyanov Roman, resolves #30978
...
git-svn-id: trunk@34982 -
2016-11-27 12:42:22 +00:00
florian
bfb6d4d1b7
* enable test to work also with small targets taking only a shortint as longjmp argument
...
git-svn-id: trunk@34972 -
2016-11-26 18:42:15 +00:00
florian
f66ee3628c
* CPU bitness dependent counter sizes for faster testing on slow CPUs
...
git-svn-id: trunk@34959 -
2016-11-24 20:59:53 +00:00
sergei
8f4f40d240
* Disabled running the test, because it needs SSE4.1 capable CPU to run, and there is no portable way to detect it.
...
The purpose of test is compiling MOVSS instruction without warnings, so it still fulfills its task.
git-svn-id: trunk@34950 -
2016-11-22 10:35:41 +00:00
sergei
133fcb5ab2
* Fixed VMOVQ instruction encoding, now assembles correctly also in 32-bit code.
...
+ Test
git-svn-id: trunk@34949 -
2016-11-21 13:59:44 +00:00
Jonas Maebe
acaae2bf3c
* fixed test so it does not use uninitialised floating point values (that
...
could trigger exceptions)
git-svn-id: trunk@34947 -
2016-11-21 07:39:17 +00:00
sergei
ebe134febc
* Fixed memory reference size for MOVSS instruction, Mantis #29954 .
...
git-svn-id: trunk@34943 -
2016-11-21 03:31:25 +00:00
florian
0dbcd5daa9
* do not run test, if no stack checking is available
...
git-svn-id: trunk@34932 -
2016-11-20 16:02:37 +00:00
florian
13de8c6808
* -Or => -Ooregvar
...
git-svn-id: trunk@34931 -
2016-11-20 15:45:01 +00:00
florian
baa33d7e2f
* pass enabled features to the compiler when running tests on the embedded target, so tests can depend on the features
...
git-svn-id: trunk@34929 -
2016-11-20 15:43:27 +00:00
Jonas Maebe
a89a4d905f
+ test for already fixed mantis #30948
...
git-svn-id: trunk@34928 -
2016-11-20 11:44:25 +00:00
florian
10132bfafa
* removed accidently committed file
...
git-svn-id: trunk@34927 -
2016-11-20 11:26:48 +00:00
sergei
edf943a4f6
* Changed memory operand size for VMOVSS instruction to 32 bits, Mantis #29957 .
...
git-svn-id: trunk@34918 -
2016-11-18 23:37:01 +00:00
florian
56252d59f0
+ support for the PREFETCHTW1 instruction based on a patch by Emelyanov Roman, resolves #30933
...
git-svn-id: trunk@34917 -
2016-11-18 20:19:39 +00:00
svenbarth
63b0024e4c
* fix for Mantis #30626 : unset current_procinfo so that further specializations don't use a symtable to specialize themselves in that they shouldn't use (cause current_procinfo takes precedence)
...
git-svn-id: trunk@34916 -
2016-11-18 16:17:09 +00:00
svenbarth
0e7a9ad375
* partial fix for Mantis #30831 (partial, because no exception has been encountered yet): when checking whether the left node of a vmtaddrnode is a generic, don't rely on df_generic, but instead use is_generic which checks for a true generic (the other will also be true if it's merely a structured type declared (or specialized) inside another generic)
...
+ added test
git-svn-id: trunk@34915 -
2016-11-18 14:43:45 +00:00
svenbarth
fc5ce63134
* fix for Mantis #30832 : instead of checking a procdef's struct for df_generic check the procdef itself, this way global generic methods or generic methods that are part of non-generic classes or records are caught as well.
...
+ added test
git-svn-id: trunk@34914 -
2016-11-18 14:01:03 +00:00
florian
67570a6262
+ patch to support assigning class procedures to procedure variables by Ondrej Pokorny, resolves #30936
...
+ additional tests
git-svn-id: trunk@34909 -
2016-11-17 19:40:42 +00:00
pierre
a4f361ad50
Fix error in header line used by dotest, use %target instead of %os
...
git-svn-id: trunk@34906 -
2016-11-16 09:29:21 +00:00
florian
3f072b3e29
* workaround for issue #30348 , FPC allowes now 65535 sections in coff object files, but as the section index is normally signed, this is only a dirty workaround
...
git-svn-id: trunk@34904 -
2016-11-15 22:06:00 +00:00
sergei
b4904deea8
* MIPS: Fixed code generation for PIC global symbols with large offset, resolves #30552 .
...
git-svn-id: trunk@34902 -
2016-11-15 20:04:27 +00:00
florian
6d6a45c034
* add/sub nodes with nf_internal set should not do overflow checking, resolves #30889
...
* do not convert succ/pred into add/sub nodes if nf_internal is set
git-svn-id: trunk@34896 -
2016-11-13 21:18:39 +00:00
florian
9bff3ac624
* copy also pushedparasize when copying call nodes, resolves #30923
...
git-svn-id: trunk@34885 -
2016-11-13 14:46:55 +00:00
Tomas Hajny
ff02b2dfb5
+ added test based on bug #24504
...
git-svn-id: trunk@34850 -
2016-11-08 22:24:22 +00:00
florian
a27b07b342
+ more restrictions on pred/succ to dec/inc optimization
...
o check if the argument can be used as a call by reference parameter
o check if the argument has no side-effects
+ tests
git-svn-id: trunk@34816 -
2016-11-06 16:36:02 +00:00
florian
96858dd64d
+ additional tests which ensure that constant propagation is off
...
as the compiler optimizes the original tests too much with constant propagation
to keep them useful
git-svn-id: trunk@34796 -
2016-11-05 23:05:57 +00:00
florian
8bbd2e4030
+ test for issue #27744
...
git-svn-id: trunk@34790 -
2016-11-05 23:05:46 +00:00
florian
9c81e90e08
+ extension to iso mode: reset/rewrite can take a file name as a second parameter
...
git-svn-id: trunk@34726 -
2016-10-16 07:55:08 +00:00
svenbarth
d4e573c1e3
* fix for Mantis #27349 : nested classes might also reside inside records
...
+ added test
git-svn-id: trunk@34714 -
2016-10-13 20:40:47 +00:00
svenbarth
254be82c43
* revert r34712: the behavior with the class constructors is indeed Delphi compatible. However only one class constructor/destructor per class is allowed no matter how it's named.
...
git-svn-id: trunk@34713 -
2016-10-13 20:11:35 +00:00
svenbarth
4e5ed5b0e2
Fix for Mantis #30729 : don't allow other names for class constructors or destructors than Create and Destroy respectively.
...
+ added tests
git-svn-id: trunk@34712 -
2016-10-13 19:24:07 +00:00
Jonas Maebe
5efb32285a
* fixed alignment for interface RTTI (patch by Alfred, mantis #30182 )
...
git-svn-id: trunk@34695 -
2016-10-09 12:34:01 +00:00
Jonas Maebe
265923a2ee
* several fixes for TMultiReadExclusiveWriteSynchronizer, based on patch by
...
Derek (mantis #28830 )
o ability for a thread to acquire a readlock when it already holds a
write lock, or vice versa
o detect when thread1 releases a lock while it hadn't acquired one
o correct result of beginwrite (return true only when another thread
held/acquired a write lock before the current thread got it)
o extra compared to Derek's patch: replaced some additional
(mostly pre-existing) interlocked*() hacks with proper memory
barriers, made formatting consistent, fixed compilation on platforms
where tthreadid is not an integer type, improved tthreadid hashing
function for 64 bit platforms, fixed some comments
git-svn-id: trunk@34678 -
2016-10-08 20:45:45 +00:00
Jonas Maebe
233622157c
* don't attempt to load the VMT of a niln when taking the address of a
...
class method (mantis #30706 )
git-svn-id: trunk@34641 -
2016-10-07 16:41:32 +00:00
Jonas Maebe
a3afefc6cb
+ test for mantis #27522 (fixed in r29811)
...
git-svn-id: trunk@34601 -
2016-10-02 21:51:31 +00:00
Jonas Maebe
868370d727
+ InterlockedCompareExchangePointer() alias for InterlockedCompareExchange(pointer)
...
(mantis #29964 )
git-svn-id: trunk@34599 -
2016-10-02 12:57:07 +00:00
Jonas Maebe
e5a1231931
* updated FSF address (mantis #30198 , patch by Paul Gevers)
...
git-svn-id: trunk@34598 -
2016-10-02 12:56:59 +00:00
Jonas Maebe
94d7a7274b
* compare floating point default parameter values bytewise instead of as
...
floating point values, so that NaNs can also be compared (mantis #30299 )
git-svn-id: trunk@34597 -
2016-10-02 12:56:49 +00:00
Jonas Maebe
de60bfab9c
* make the string data of pchar constants read-only (mantis #30666 )
...
git-svn-id: trunk@34594 -
2016-10-02 12:56:40 +00:00
svenbarth
246de84ef3
* ensure that a finalization section is parsed before the generation of specializations as otherwise specializations in such sections would result in unresolved forward declarations
...
git-svn-id: trunk@34582 -
2016-09-30 15:41:35 +00:00
Jonas Maebe
ec53fdf45a
* don't try to write using standard I/O from a thread while the program is
...
shutting down, that can fail
o the test will still fail because the tthread shutdown code itself in
the classes unit cannot handle running while a program is quitting,
and that should be fixed (exposed by r34456)
git-svn-id: trunk@34554 -
2016-09-22 07:50:08 +00:00
svenbarth
386b7ac154
* fix for Mantis #28753 : don't return generic dummys from single_type(); ensures that parameters correctly evaluate to error defs should generic dummies be used
...
git-svn-id: trunk@34534 -
2016-09-16 20:40:19 +00:00
svenbarth
ce18b10c81
* fix for Mantis #30530 : when the global/static symtable is reached defowner is Nil, so respect that in the loop condition
...
+ added test
git-svn-id: trunk@34532 -
2016-09-16 15:39:03 +00:00
svenbarth
50f2aab0ef
* fix for Mantis #22192 : handle the case that a specialization has the same name as the generic it's based on as in that case the typedef of the symbol is an errordef; therefor we need to use the symbol's real name
...
+ added test
git-svn-id: trunk@34530 -
2016-09-16 15:13:27 +00:00
svenbarth
2ea587f746
* fix for Mantis #30537 : also allow the parasymtable as a parent symtable when generating the mangled name as that is needed for generic functions
...
+ added test
git-svn-id: trunk@34527 -
2016-09-16 14:10:53 +00:00
svenbarth
0500c678e5
* fix for Mantis #30534 : don't consider all types with generic constraints as equal, but at least ensure that they have the same basetype (Note: this still needs a bit more improvement)
...
+ added test
git-svn-id: trunk@34526 -
2016-09-16 13:24:28 +00:00