sergei
|
f8e921e478
* Fixed code generation for constructors compiled in {$implicitexeptions off} state, or having no implicit finally frame. Exit label and finalization code have to be placed before call to AfterConstruction, so exit statements do not jump over AfterConstruction, and overall control flow is the same as in default {$implicitexceptions on} state.
|
hace 13 años |
sergei
|
f6761d7939
* Handle safecall exceptions entirely in tcgtryfinallynode pass2. This simplifies things and removes the need in hidden safe_result variable.
|
hace 13 años |
sergei
|
66ec137f09
* Partially reverted r19668. It turns out that the implicit finally block in constructors, besides its intended purpose, provides correct position of the exit label (more precisely, it relocates exit label to the start of 'finally' part without subsequent restoring it to original value). Optimizing it away causes exit statements in constructors to jump over AfterConstruction call.
|
hace 13 años |
sergei
|
b223e104ac
Refactoring:
|
hace 13 años |
florian
|
20b1e3af78
Merging of generics branch of Sven Barth
|
hace 13 años |
sergei
|
270fc39432
* An open array/array of const parameter passed by value and requiring a local copy on heap (currently all targets except non-Darwin i386 ones) should not be placed into register and should force procedure to have an implicit finally block.
|
hace 13 años |
sergei
|
c8e65c501a
* Don't optimize away implicit initialization/finalization procedures if corresponding clause is present in the source but is empty. Resolves #19701.
|
hace 13 años |
svenbarth
|
4419dc3d34
Rebase to revision 19673
|
hace 13 años |
svenbarth
|
87d9714221
Somehow the changes regarding tf_methods_specialized weren't commited, thus here they are again:
|
hace 13 años |
svenbarth
|
461d231daa
Rebase to revision 19078 (directly before the merge of cpstrnew)
|
hace 13 años |
svenbarth
|
594f84dc2c
Merge branch 'unique-syms'
|
hace 13 años |
sergei
|
6cb6569d51
* Set pi_uses_exceptions flag when creating/firstpassing ttryexceptnode or ttryfinallynode, not when parsing try statements. It ensures that procedures with exception handling nodes created by compiler (constructors in the first place, but also for..in loops with TObject iterators, etc.) are handled the same way as ones containing exception nodes from user code.
|
hace 13 años |
svenbarth
|
feeff56099
We need to flag specializations of record-/objectdef once we have generated their methods otherwise an interesting situation might occur:
|
hace 14 años |
sergei
|
fa4b78363c
+ Handle safecall exceptions with a dedicated compilerproc, simplifies compiler part and reduces generated code size.
|
hace 14 años |
florian
|
c6a0cafdb0
* don't generate implicit exception frames for pure assembler routines, resolves #20075
|
hace 14 años |
florian
|
d7f7a9bb76
* patch by Alexander Shishkin to clean up $ifopt usage by $push/$pop, resolves #20346
|
hace 14 años |
sergei
|
b997094755
+ Generate unwind bytecode for function prologues on win64.
|
hace 14 años |
pierre
|
57f3f0a82b
scanner unit:
|
hace 14 años |
florian
|
cf0d808708
+ avr assemblers do not convert automatically cond. branches with too large jump distances into an unconditional branch and a reverse condition branch, so fpc does this now
|
hace 14 años |
svenbarth
|
a862cd702d
Rebase to revision 18000
|
hace 14 años |
svenbarth
|
de1e6b1c3d
Implement support for nested non-generic types inside generic types. This is mostly for records, classes and objects ("structures") as those didn't work at all, but the others (arrays, procvars) weren't done cleanly either.
|
hace 14 años |
pierre
|
239944f8d0
+ Use DLL name in assembler labels used to import DLL functions/variables
|
hace 14 años |
Jonas Maebe
|
9f4f21baa1
* set the line information for the initialization of local variables with
|
hace 14 años |
florian
|
f53a14ec38
* fix regressions caused by r17496
|
hace 14 años |
florian
|
e271595e20
* patch by Hans-Peter Diettrich to speed up specialize_objectdefs, resolves #17638
|
hace 14 años |
svenbarth
|
16e500ee3c
Removed old search algorithm
|
hace 14 años |
svenbarth
|
d0705a1779
Rebase to revision 17236
|
hace 14 años |
sergei
|
1c01d52ea6
* Improvements of tprocinfo class:
|
hace 14 años |
svenbarth
|
f7f357f18e
* symconst.pas:
|
hace 14 años |
svenbarth
|
d12b198c7f
Rebase to revision 16888
|
hace 14 años |