Jonas Maebe
e746cf96da
Overload selection: call procvars if result is compatible with parameter
...
Previously we only autmatically called procvars without parameters in TP/Delphi
modes if their result type was equal to the parameter type to which they were
passed. Resolves #39748 .
2022-09-16 11:21:05 +02:00
Sven/Sarah Barth
62a57bf82e
* fix #39903 : correctly parse anonymous function references in records (and classes/objects)
...
+ added test
2022-09-15 22:57:05 +02:00
J. Gareth "Curious Kit" Moreton
2931b43000
* New test for #39713
2022-08-31 18:25:11 +00:00
florian
0440749562
+ test for #39873
2022-08-28 21:29:52 +02:00
Sven/Sarah Barth
e5957b1ef0
* fix #39875 : when a WideString constant is used to initialize a PChar the constant needs to be converted to the current code page
...
+ added test
2022-08-26 18:05:13 +02:00
Sven/Sarah Barth
5135b586cb
* fix #39857 : don't trash symbols marked as vo_is_internal
...
+ added test
2022-08-26 17:42:22 +02:00
Sven/Sarah Barth
8595c927a8
* fix #39876 : correctly Read(Str) enum types which have a size smaller than 4 Byte
...
+ added tests
2022-08-26 17:16:29 +02:00
florian
85c7368759
* handle also simulated flags in tmipselnotnode.second_boolean, resolves #39877
2022-08-24 21:16:23 +02:00
florian
2670eb1ce7
* improved test as proposed by Rika
2022-08-23 21:27:44 +02:00
florian
4f7dffadbb
* extended test
2022-08-22 21:33:52 +02:00
florian
5af087cfc3
* experimental test for #39722 , no sure if it will work this way on all platforms
2022-08-21 23:03:38 +02:00
florian
d3d4de7818
* test for #39834 , previous commits resolve #39834
2022-08-20 18:11:24 +02:00
Sven/Sarah Barth
61debb1559
* fix #39869 : correctly check whether the recorded token stream still needs to be parsed (the replay depth of the scanner needs to be *larger* than what it was before starting the playback)
...
+ added test
2022-08-18 23:09:01 +02:00
florian
9e14dee1c3
* fixed Math.Tanh as proposed by Paolo Valle, resolves #39867
2022-08-17 20:56:43 +02:00
Ondrej Pokorny
55629aeb19
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
Sven/Sarah Barth
5e7330448d
* fix #39858 : correctly keep track of symbols that need to be captured into the capturer
...
+ added test
2022-08-12 17:44:39 +02:00
florian
5afd809e88
+ handle LOC_FLAGS in thlcgobj.location_force_mem, resolves #39292
2022-08-08 23:14:56 +02:00
J. Gareth "Curious Kit" Moreton
8ba76f7d0a
* New test to catch i39851
2022-07-31 19:45:23 +00:00
florian
6c47f8f4d7
* do not warn on anonymous functions without captured variables about being not used, resolves #39853
2022-07-29 21:46:48 +02:00
Jonas Maebe
3d6c53ee74
parentfpstruct: explicitly trash before initialising
...
It's an internal sym, but it contains user data. Together with the previous
commit resolves #39845
2022-07-26 22:36:13 +02:00
Sven/Sarah Barth
8d90cd3e64
* fix #39826 : correctly handle function references that are part of generics/specializations, but are not generics/specializations themselves
...
+ added test
2022-07-15 16:32:02 +02:00
florian
d27c3b4b79
+ test for #33559
2022-07-13 22:53:37 +02:00
florian
e25594c48e
* correctly truncate rtti symbol names of enumeration types, resolves #39829
2022-07-11 22:07:57 +02:00
florian
1d32a575e7
* as correctly pointed out by Bart B, -gw instead of -g should be used in the test for #39816
2022-07-06 19:50:07 +02:00
florian
e28238da9b
* handle absolute on strings correctly for dwarf debug info, resolves #39816
2022-07-05 23:04:57 +02:00
florian
a9db747eb9
+ test for #39786
2022-07-04 22:52:05 +02:00
florian
a2a2a6d79e
* naming fixed, it is a test for #39785
2022-07-03 16:09:09 +02:00
florian
c5a0d16c58
* experimental test for #39758
2022-07-02 23:36:14 +02:00
florian
ceda27ae25
* allow type parameters in variant parts of records as we do not now
...
what type is used during specialization, resolves #39805
2022-06-28 22:45:17 +02:00
Sven/Sarah Barth
b2a5334a75
* fix #39795 : when extracting make_prettystring it was forgotten to also append the const part of the name to the specialize name
2022-06-22 09:44:21 +02:00
Nikolay Nikolov
4d6e3b4e1a
* Don't call secondpass(left) in twasmtypeconvnode.second_int_to_real, this fixes bug #39735 .
2022-06-21 23:59:25 +03:00
florian
98ec81896e
* do not throw messages on potentially uninitialized internal symbols, resolves #39744
2022-06-15 23:30:33 +02:00
florian
a05aa25aad
* Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve #39738
2022-06-03 22:54:18 +02:00
Sven/Sarah Barth
a27bc236a0
* fix #39742 : when assigning a function to a function reference it's not the function itself that needs to be checked to be captureable, but instead what it captures (this applies for both the non-generic and the generic case)
...
+ added tests
2022-05-31 23:16:41 +02:00
Sven/Sarah Barth
2372a06926
* fix #39740 : consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
...
+ added test
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
5a680f0148
* fix #39745 : the conversion from ordinals to pointer types in mode Delphi is not allowed for a void type (happens when using a typecast to convert a method without parameters to a function reference)
...
+ added test
2022-05-30 23:05:45 +02:00
Sven/Sarah Barth
f73fc7d566
* fix #39736 : ensure that the capturer object and any converted function reference interface are considered used
...
+ added test
2022-05-27 07:24:46 +02:00
Jonas Maebe
0d74752b1f
Fix %cpu type as spotted by Alexey Torgashin
2022-05-15 18:01:48 +02:00
Jonas Maebe
9b11509dd0
Text for merge request #226
2022-05-15 10:57:43 +02:00
Pierre Muller
8184287ec0
Fix for variables longer than 127 chars
2022-05-10 23:18:01 +02:00
J. Gareth "Curious Kit" Moreton
fb14bc8459
* New webtbs/tw39646.pp test to evaluate fix for
...
i39646
2022-05-07 20:53:35 +00:00
florian
f5742f21a0
* do not run test, it is about successful compilation and runtime on weak CPUs is high
2022-05-01 22:58:24 +02:00
florian
3fac399683
* more precise test as suggested here: 876ae56158 (note_921869640)
2022-04-24 14:41:06 +02:00
florian
876ae56158
* patch by Rika: fix for ... in iterator for TMap and TSet, resolves #39354
2022-04-23 21:51:26 +02:00
Sven/Sarah Barth
74f9523806
* in case of an implicit specialization ensure that the symbol of the generic is indeed considered as used once the final implicit specialization has been picked
...
+ added test
2022-04-23 16:29:13 +02:00
Sven/Sarah Barth
97c16401f7
+ add test for already fixed #39677
2022-04-22 10:40:58 +02:00
Sven/Sarah Barth
22a4cc66ec
* fix #39675 : consider the symbols for unnamed parameters as used so that there won't be unnecessary hints about them
...
+ added test
2022-04-22 10:40:58 +02:00
Sven/Sarah Barth
76753438ed
* fix #39681 : also handle the result type of a specialized procvar when checking for a possible implicit specialization
...
+ added test
2022-04-22 10:40:58 +02:00
Sven/Sarah Barth
66bac7c415
* fix #39679 and fix #39680 : for implicit specializations a parameter used in a call might also inherit in some depth from a specialization used as parameter type
...
+ added tests
2022-04-22 10:40:58 +02:00
Sven/Sarah Barth
4053d59a2c
* fix #39673 : also resolve the dummy symbol in case this isn't a reuse of the current generic's name
...
+ added test
2022-04-22 10:40:58 +02:00
Sven/Sarah Barth
d32134dd1a
* fix #39664 : ensure that the 8- and 16-bit signed overloads of IntToHex return the correct number of digits
...
+ added test
2022-04-19 14:24:00 +02:00
florian
62f21ae60d
+ recurse into multiple subscription nodes when calculating contant @... expressions, resolves #39665
2022-04-13 21:32:06 +02:00
Pierre Muller
a939c0ccd4
Add several tests for 127 max ID length, related to bug report #39661
2022-04-13 15:15:18 +00:00
florian
4c5fc2f958
* patch by Rika: avoid that capacity of TQueue grows to much for certain
...
usage patterns, resolves #39662
2022-04-12 17:36:42 +02:00
Sven/Sarah Barth
815734c47a
* fix #32034 and fix #39656 : in a for-in-loop with an array constructor enforce the type of the loop variable for the elements
...
+ added tests
2022-04-08 17:40:36 +02:00
florian
81d7e28a87
+ test for #39627 , together with the last merge request it resolves #39627
2022-04-03 15:08:24 +02:00
Jonas Maebe
9813eb9048
AArch64 asm reader: add support for fpcmp(e) conditions
...
Resolves #39643
2022-04-03 13:40:21 +02:00
Sven/Sarah Barth
92eb260521
+ support for generic forward declarations fixes #39582 , so add a test for it
2022-02-18 17:54:36 +01:00
Sven/Sarah Barth
c14c3ec98f
+ support for generic forward declarations fixes #39581 , so add a test for it
2022-02-18 17:54:36 +01:00
florian
34630c2ef9
* properly set types for currency divisions, resolves #38717
2022-02-13 22:47:38 +01:00
Nikolay Nikolov
2c0f10d988
* when adding WebAssembly object info, traverse through current_module.used_units,
...
as well as the usedunits global. This resolves #39543
2022-02-12 08:32:48 +02:00
Florian Klämpfl
f36a665879
* test for fixed bug to play safe
2022-01-30 22:35:14 +01:00
florian
f21f7f0f50
* handle result type of unsigned ordinal operations in ISO/Extpas mode similiar to TP, solves
...
#37875
2022-01-28 22:48:50 +01:00
florian
e19b45a71b
* tests fixed after last commit
2022-01-15 22:30:25 +01:00
florian
11b069fa61
+ test
2022-01-11 22:10:21 +01:00
florian
fc3b635013
* patch by Bart B to fix the value of Code for unsigned types if the input is negative, resolves #39523
2022-01-11 21:29:56 +01:00
Sven/Sarah Barth
52ed79c7f3
* fix #39506 : add assignment operator overloads for all string types so that assignments of constant strings can be handled correctly
...
+ added adjusted/extended test (the test isn't enabled by default however as it requires libffi on most platforms)
2022-01-04 23:41:38 +01:00
florian
983fbff871
* proper range checking for TryStrToDWord, should resolve all issues in #39406
2022-01-02 21:46:14 +01:00
florian
435f3a9fe2
* allow a range of Low(Longint) to High(DWord) in TryStrToInt, see also issue #39406
...
* moved test
2022-01-02 21:33:01 +01:00
florian
03ce23246f
* patch by Don Siders: Fixes spelling, grammar errors in source and compiler messages, resolves #39434
2021-11-10 19:16:14 +01:00
florian
292be9029e
* when converting a*a into sqr(a), set the result type correctly
...
* removefloatupcasts takes care of cs_excessprecision, resolves #39012
2021-11-07 21:54:25 +01:00
florian
95ad8f1694
* correctly read the region label in $region directives, resolves #39395
2021-10-28 21:13:01 +02:00
florian
3eefff75df
* pass a randseed which is known to be problematic
2021-10-20 20:04:32 +02:00
florian
08050086b9
* keep type when removing "1*", resolves #38840
2021-10-17 22:23:49 +02:00
florian
ee10850a57
* patch by Sergey Larin: Reducing and aligning the size of TAnsiRec, TUnicodeRec for CPU64, resolves #38018 :
...
For CPU64, the size of record TAnsiRec and TUnicodeRec is 16 bytes instead of 24.
Which is very good also because of the alignment. when allocating memory, the address
of the first character of the string will be aligned on the 16-byte boundary.
At the same time, the useless Dummy field, which is needed in CPU64 for exactly alignment, has been removed.
For CPU32 (and CPU16), the record size has not changed, so procedures such as
fpc_AnsiStr_Decr_Ref, implemented in assembler (see i386, arm), remained working correctly.
* tests adapted
2021-10-17 11:13:29 +02:00
florian
5c75ef30ce
* test for #37785 which is resolved meanwhile
2021-10-16 20:44:52 +02:00
florian
ca9384fd6c
* patch by Dean Mustakino to avoid generation of debug info for generics, resolves #38827
...
+ test
2021-10-11 18:45:41 +02:00
florian
a4672fbd1c
o based on a patch by Rika, resolves #39401 :
...
* use Base64 (62=_, 63=$) encoded FNV hash (instead of CR-32) to shorted identifiers
* renamed fpccrc to fpchash
+ test
2021-10-10 10:09:22 +02:00
florian
91cf1774dd
* replace MT random generator by Xoshiro128**, resolves #38237
2021-10-05 22:20:22 +02:00
Jonas Maebe
c745ae4836
AArch64 popt: don't replace registers with X/WZR
...
Most arithmetic/logica instructions don't support X/WZR as operand (since
you should use movk with the calculated constant in that case)
Resolves #39372
2021-10-04 20:58:05 +02:00
J. Gareth "Kit" Moreton
1f19b11398
x86_64: Fix to tw8573 overflow bug under -Cg option
2021-09-29 18:32:31 +00:00
Jonas Maebe
fcb646bc3b
obcpas: fix categories implementing protocols
...
Allocate the ImplementedInterfaces array for them and save to/load from ppu
Solves #39375
2021-09-25 16:15:45 +02:00
florian
e2624fdaaa
* fix test
2021-09-14 22:01:39 +02:00
florian
5065e4ba50
* fix code for ARM FPA, just in case ...
2021-09-13 22:55:44 +02:00
florian
9bd785c06b
* fix handling of -0.0 in sse/avx code, resolves #39357
2021-09-13 22:47:26 +02:00
Yuriy Sydorov
64812bdc60
* Modified the test to run properly on non-UTF8 systems.
2021-09-11 20:11:40 +03:00
Yuriy Sydorov
daa05f19cb
* Prevent a crash of the tw2423 test on some versions of Windows.
2021-09-11 19:54:02 +03:00
florian
677f829732
* tw39323 needs to turn on range check to test what it is supposed to test
2021-09-05 23:12:34 +02:00
florian
a5f6505edc
* fix range checking for zero based strings, resolves #39323
2021-09-05 21:03:31 +02:00
florian
3069d74ecc
* handle constant folding correctly for <pointer>+<ord. constant>+<ord. constant>, resolves #39332
2021-09-01 21:32:27 +02:00
florian
8efae66956
* we cannot do SSA during partial writes to arrays which span multiple registers, resolves #39325
2021-09-01 09:31:50 +02:00
Sven Barth
3ce6cae11d
* fix for #39310 by fixing various small issues in tabstractrecordsymtable.has_single_field:
...
- initialize the returned def to a safe default
- correctly reset the found symbol for each loop
- reset the result when descending into a record
+ added test
2021-09-01 09:31:15 +02:00
Pierre Muller
23bf243acd
Add test for bug report 38973 (already fixed in trunk/main)
2021-09-01 09:29:51 +02:00
Jonas Maebe
bc84f780ee
Solves #39296 : x86-64 parameter zero/sign extension
2021-09-01 09:29:51 +02:00
svenbarth
2a2576b1d5
* further fix for Mants #26760 : applied patch by Ondrej Pokorny to fix recompilation of units referenced with an "in" clause if no file extension is provided
...
+ added (interactive) test
git-svn-id: trunk@49613 -
2021-07-15 21:52:27 +00:00
florian
0d6a1d24bd
* might_have_sideeffects in gen_c_style_operator as proposed by runewalsh, resolves #39206
...
git-svn-id: trunk@49608 -
2021-07-13 18:31:38 +00:00
svenbarth
924f9466f0
* fix for Mantis #26760 : apply patch by Ondrej Pokorny to ensure that units referenced by an "in"-clause are recompiled when they have been changed
...
+ added test (though due to the nature of the bug it needs to be interactive)
git-svn-id: trunk@49587 -
2021-07-09 15:52:00 +00:00
florian
86ac03e07e
+ support SHLX and SHRX in TX86AsmOptimizer.RegLoadedWithNewValue, resolves #39178
...
git-svn-id: trunk@49583 -
2021-07-07 20:28:04 +00:00
florian
51326e94f3
* allow char constant to be used for const string parameters in generic specializations, resolves #39030
...
git-svn-id: trunk@49569 -
2021-06-28 20:35:33 +00:00
svenbarth
be1461654f
- remove unused copy of tw17904 (wrong extension)
...
git-svn-id: trunk@49482 -
2021-06-05 17:44:00 +00:00
florian
f2e0af6d37
* check used registers properly for SETcc/TEST/Jcc -> Jcc, resolves #38940
...
git-svn-id: trunk@49405 -
2021-05-28 21:23:09 +00:00
florian
1e1848da92
* fix exception generation in ln(...), resolves #38832
...
git-svn-id: trunk@49328 -
2021-05-02 19:45:09 +00:00
Jonas Maebe
9977889f4a
* fix finally block getting unconditionally removed if try-block is empty
...
(hasnocode(nil) always returns true). Regression from r48174
git-svn-id: trunk@49305 -
2021-05-01 09:28:58 +00:00
florian
77cc2f4ced
* decrease macro nesting counter early when expanding empty macro
...
to avoid errors about too depth macro nesting, resolves #38802
git-svn-id: trunk@49265 -
2021-04-25 19:49:26 +00:00
pierre
17e3c31b7e
Fix gotpcrel relocation for TESTQ x86_64 instruction
...
git-svn-id: trunk@49252 -
2021-04-23 21:52:24 +00:00
florian
dbee3bcc0d
* fixed MSecsToTimeStamp by Lagunov Aleksey, resolves #38631
...
git-svn-id: trunk@49247 -
2021-04-22 20:14:00 +00:00
Jonas Maebe
7c9fb4b4af
* AArch64: fix storing a 32 bit value in the lower 32 bits of a 64 bit
...
subsetreg (mantis #38766 )
git-svn-id: trunk@49236 -
2021-04-19 20:52:12 +00:00
Jonas Maebe
bb977b398d
* AArch64: fix spilling integer registers to stack offsets that cannot be
...
encoded directly into the spilling instructions (second part of
mantis #38053 )
git-svn-id: trunk@49207 -
2021-04-14 20:56:32 +00:00
Jonas Maebe
ff3f812d97
* fix conversion of true/false macro definitions to boolean values
...
(mantis #38492 )
o since the macro lookups are recursive, "mac" will usually be nil
afterwards (unless we found an undefined macro)
git-svn-id: trunk@49160 -
2021-04-10 10:56:02 +00:00
florian
09628e56cb
* even if currency is handled by torddef, it is a real number, so using / is perfectly right, resolves #38718
...
git-svn-id: trunk@49154 -
2021-04-09 20:38:46 +00:00
florian
b09669dffe
* allow also CSUBSETREG in tx86inlinenode.second_IncludeExclude, resolves #38733
...
git-svn-id: trunk@49151 -
2021-04-09 20:09:19 +00:00
florian
503fc85dff
* patch by J. Gareth Moreton: handle register allocations correctly in MovMov2Mov 3, resolves #38703
...
git-svn-id: trunk@49128 -
2021-04-06 15:50:28 +00:00
florian
f0023a3b04
* Aarch64: patch by J. Gareth Moreton: fix constant writing, resolves #38695
...
+ test
git-svn-id: trunk@49104 -
2021-04-02 16:44:43 +00:00
florian
cc64d9eb4e
* do not swap left/right code generation for assignment nodes if
...
conditional expressions are involved, resolves #38129
git-svn-id: trunk@49095 -
2021-03-31 20:53:18 +00:00
florian
47557e0ad2
* cpubase.cgsize2subreg should handle all valid sizes, resolves #38557
...
git-svn-id: trunk@49087 -
2021-03-30 16:44:19 +00:00
florian
b4eb1780ad
* added test, issue is fixed by r48758 already
...
git-svn-id: trunk@49075 -
2021-03-28 21:10:13 +00:00
florian
47eb7cec0c
* test needs objfpc mode else i is 16 bit only
...
git-svn-id: trunk@49074 -
2021-03-28 21:09:35 +00:00
florian
6218254e53
* allow also 8 byte string constants in assembler, resolves #28640
...
git-svn-id: trunk@49066 -
2021-03-27 17:13:14 +00:00
Jonas Maebe
308aee42a0
* the offset parameter of reference_reset* must be asizeint rather than
...
longint (mantis #38636 )
git-svn-id: trunk@49065 -
2021-03-27 15:31:33 +00:00
svenbarth
ca7c775e36
* fix for Mantis #38642 : for enumerations with jumps Delphi behaves as follows:
...
- GetTypeKind returns tkEnumeration (FPC previously generated a compile error here)
- GetTypeInfo on a generic parameters returns Nil for such types (FPC previously generated a compile error here)
- GetTypeInfo otherwise generates a compile error (as before)
git-svn-id: trunk@49064 -
2021-03-27 09:35:07 +00:00
florian
2b47425f08
+ tx64tryfinallynode.dogetcopy properly implemented, resolves #37305
...
git-svn-id: trunk@48972 -
2021-03-14 21:23:05 +00:00
florian
c603477ec4
* fix test for RiscV
...
git-svn-id: trunk@48914 -
2021-03-08 17:12:19 +00:00
pierre
01a351f804
Fix for bug report 38549 about wrong code generation
...
for mips/mipsel and riscv32/riscv64 CPUs for
set operators '<=' and '>='.
New tests for this bug report.
tw38549.pp, main source, also included
by tw38549a.pp, tw38549b.pp, tw38459c.pp and tw38459d.pp
with explicit {$packset X}, with X=1,2,4, or 8 added.
git-svn-id: trunk@48874 -
2021-03-03 22:15:20 +00:00
Jonas Maebe
9c831677ff
* support Objective-C classes and protocols with -gw3 (mantis #36250 )
...
git-svn-id: trunk@48834 -
2021-02-27 21:44:53 +00:00
pierre
58171b4308
Extend list of CPUs defining slowcpu conditional in tmt1 and tw8177 sources
...
git-svn-id: trunk@48816 -
2021-02-26 23:39:14 +00:00
pierre
f85d7d2591
Fix tw28713 for big endian CPUs
...
git-svn-id: trunk@48795 -
2021-02-23 22:04:18 +00:00
pierre
2cd6951205
Apply patch proposed by J. Gareth Moreton in bug report #0038527
...
The patch reworks the LeaLea2Lea optimisation and hopefully fixes the bug (admittedly by adding a brand new optimisation!).
git-svn-id: trunk@48792 -
2021-02-22 23:15:31 +00:00
florian
5a26c58285
* allow in-operator to be used on type parameters, resolves #38497
...
git-svn-id: trunk@48763 -
2021-02-21 21:29:40 +00:00
florian
d0910b5ac8
* allow sub/add nodes in constant pointer expressions, resolves #34027
...
git-svn-id: trunk@48514 -
2021-02-05 22:10:27 +00:00
florian
a67c184200
* test for already fixed issue #32139
...
git-svn-id: trunk@48501 -
2021-02-02 21:36:54 +00:00
florian
40b8bde305
* test for 32 bit targets fixed
...
git-svn-id: trunk@48496 -
2021-02-01 21:14:19 +00:00
svenbarth
fe5b29c111
* fix for Mantis #38249 : apply adjusted patch by avk to implemnt CastTo handling when the source variant is a custom variant, but the destination type is not
...
+ added test (includes test for #20849 )
git-svn-id: trunk@48477 -
2021-01-31 20:26:26 +00:00
florian
4bec57702f
* handle generic with ord call of sub-range and enumeration data excluding 0 correctly, resolves #38412
...
git-svn-id: trunk@48452 -
2021-01-29 21:31:59 +00:00
florian
e99827246e
* fix type conversion for array indicies if the ordinal ranges of the involved types do not overlap, resolves #38413
...
git-svn-id: trunk@48449 -
2021-01-28 20:56:15 +00:00
florian
0ab4515e58
* properly mangle interface wrapper names to avoid duplicate label errors, resolves #38385
...
git-svn-id: trunk@48411 -
2021-01-24 21:32:27 +00:00
svenbarth
c3fd06b6b5
* fix for Mantis #38390 : use Val instead of StrToInt to avoid overload problems
...
+ added test
git-svn-id: trunk@48399 -
2021-01-24 14:57:20 +00:00
florian
f4c74b6b09
* fix TBufferedFileStream.Seek(0,soBeginning) as proposed by Andrey Zubarev, resolves #38351
...
git-svn-id: trunk@48282 -
2021-01-21 21:08:13 +00:00
pierre
62edfa5584
Change parameter type of Build* procedure from out to var, as the StringList is created in calling main
...
This avoid a warning during compliaztion and a crash when compiled with -gt* option.
git-svn-id: trunk@48228 -
2021-01-20 13:20:11 +00:00
florian
4e61867ce1
* modified (use IsManagedType to check if a for loop can be used for copying) patch by Bart Broersma to fix IncreaseCapacity of TQueue, resolves #38306
...
git-svn-id: trunk@48154 -
2021-01-13 21:24:50 +00:00
Jonas Maebe
5c2303a76b
* add parameter cleanup nodes to the call cleanup block (mantis #38316 )
...
git-svn-id: trunk@48130 -
2021-01-10 15:47:27 +00:00
pierre
b7c519de81
Add check for bug fix in bug report 38339
...
git-svn-id: trunk@48129 -
2021-01-10 14:43:22 +00:00
Jonas Maebe
b1a1e6c510
+ test for mantis #38337 , already fixed
...
git-svn-id: trunk@48127 -
2021-01-10 14:09:22 +00:00
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
florian
3109005791
+ fold also (string const+(string const+string var))
...
* string tree folding code moved into level 2 opt. block
git-svn-id: trunk@47986 -
2021-01-02 22:18:38 +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
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
b4a6c22234
* do not check inlined exit nodes for unset results, resolves #38259
...
git-svn-id: trunk@47926 -
2020-12-31 15:52:02 +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
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
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
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
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
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
florian
792b629aa6
+ -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
...
+ implemented support for x86-64
* more than 2 GB static data requires to use the --no-relax option on linux
git-svn-id: trunk@47651 -
2020-11-30 22:07:34 +00:00
florian
8ddcb34e60
* fix test for x86_64 targets using the SysV abi
...
git-svn-id: trunk@47638 -
2020-11-29 21:21:34 +00:00
florian
b7e2b751cf
* fix test for targets not having a real wide string
...
git-svn-id: trunk@47637 -
2020-11-29 20:53:15 +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
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
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
florian
62c417c8bf
* temporarily fix #37034 by disabling the problematic optimization until the real cause is fixed
...
git-svn-id: trunk@45655 -
2020-06-15 19:57:39 +00:00
florian
50c48349d5
* check properly for i/o errors in the iso read helpers, resolves #37154
...
* CheckRead checks if reading caused an I/O error and returns false in this case
git-svn-id: trunk@45635 -
2020-06-10 20:47:58 +00:00
florian
aafc22bd74
+ optimize real operations with 0 and 1 if fast math is turned on
...
git-svn-id: trunk@45627 -
2020-06-08 20:33:27 +00:00
florian
8f88112bfe
* allow in iso mode constants selecting the branch to dispose of a variant record (no functional effect though), resolves #37085
...
git-svn-id: trunk@45519 -
2020-05-27 21:10:55 +00:00
florian
b4de0b2e9c
* insert fwait after fcompp, resolves #37136
...
git-svn-id: trunk@45500 -
2020-05-25 20:38:19 +00:00
florian
51da470757
* constrained type parameters are not undefined defs, resolves #37107
...
git-svn-id: trunk@45457 -
2020-05-21 18:19:08 +00:00
Jonas Maebe
a88eee4080
* fixed unitdir directive for relative paths in case the current module's
...
path is not set, broken by r43312 (mantis #37095 )
git-svn-id: trunk@45410 -
2020-05-17 21:27:00 +00:00
michael
f432bd9307
* Patch from Noel Duffy to add TrySTrToHost* functions
...
git-svn-id: trunk@45376 -
2020-05-16 13:11:28 +00:00
florian
7a60e044e3
* simplify constant expressions after re-ordering, resolves #37062
...
git-svn-id: trunk@45360 -
2020-05-13 20:26:04 +00:00
michael
71e322d058
* Patch from Noel Duffy to improve IPV6 address parsing (bug ID tw37013)
...
git-svn-id: trunk@45350 -
2020-05-13 07:19:03 +00:00
florian
7a6bd84bc0
* cast only the longint
...
git-svn-id: trunk@45325 -
2020-05-10 12:52:17 +00:00
florian
b48c8d8596
* fixed test for 32 Bit targets
...
git-svn-id: trunk@45324 -
2020-05-10 09:04:13 +00:00
Jonas Maebe
722ad1ff7b
* support floating point parameters split over multiple locations, including
...
integer registers, for homogeneous records/arrays on ppc64le (related to
mantis #36934 )
git-svn-id: trunk@45205 -
2020-05-01 13:02:48 +00:00
Jonas Maebe
05923af386
* ppc64le: fix storing homogeneous 64 bit float parameters in case they are
...
split over just FPU registers and memory (related to mantis #36934 )
git-svn-id: trunk@45204 -
2020-05-01 13:02:45 +00:00
Jonas Maebe
d83232f881
* ELFv2: fixed homogeneous aggregate parameter passing when they should
...
overflow into integer registers (mantis #36934 )
git-svn-id: trunk@45199 -
2020-04-30 20:53:05 +00:00