pierre
5ed7bd35df
Update all trunk/fpcsrc Makefile's after commit 42749
...
git-svn-id: trunk@42750 -
2019-08-20 15:58:10 +00:00
pierre
687554f4ec
Fix compilation for i8086, AllocateRawThunk return type changed to CodePointer
...
git-svn-id: trunk@42740 -
2019-08-19 15:44:29 +00:00
pierre
7f6122884f
Fix assembly instruction errors
...
git-svn-id: trunk@42738 -
2019-08-19 12:05:30 +00:00
svenbarth
652e1985a9
* implement thunking for x86_64 SysV ABI targets
...
git-svn-id: trunk@42734 -
2019-08-18 18:30:42 +00:00
svenbarth
58ada1f547
+ add a test for RawThunk; this does not require a function call manager thus it's better to place it in the general RTTI testcase so that it's always tested
...
git-svn-id: trunk@42733 -
2019-08-18 18:30:39 +00:00
svenbarth
62a61bdb41
* fix ifdefs for non-fpc (Lazarus likes to mess these up during auto completion...)
...
git-svn-id: trunk@42732 -
2019-08-18 18:30:37 +00:00
svenbarth
048dc7b289
* implement RawThunk for x86_64-win64
...
git-svn-id: trunk@42731 -
2019-08-18 18:30:34 +00:00
svenbarth
9cac24a325
* fix compilation on targets that don't have a RawThunk defined yet
...
git-svn-id: trunk@42720 -
2019-08-17 15:36:01 +00:00
svenbarth
7d9b249def
+ add TRttiOrdinalType and TRttiInt64Type (what's left of the "ordinal like" ones is TRttiEnumerationType, TRttiSetType and a non-Delphi compatible TRttiBooleanType (due to FPC supporting multiple Boolean types))
...
git-svn-id: trunk@42719 -
2019-08-17 15:35:58 +00:00
svenbarth
92c6d166a8
* TRttiFloatType.GetFloatType() can be inline
...
git-svn-id: trunk@42718 -
2019-08-17 15:35:55 +00:00
svenbarth
8fdee2b3b1
* implement TRttiFloatType.GetTypeSize()
...
git-svn-id: trunk@42717 -
2019-08-17 15:35:52 +00:00
svenbarth
16f47fbee3
* explicitely ignore the TestIntfMethods test if TVirtualInterface is not supported
...
git-svn-id: trunk@42710 -
2019-08-16 15:43:09 +00:00
svenbarth
95b60bc6b2
* switch TVirtualInterface to using thunks for QueryInterface, _AddRef and _Release as otherwise _Release will execute code that's no longer valid (it's also a bit more performant ;) )
...
Note: this is currently i386 only, x86_64 needs to be switched as well and thus TVirtualInterface.Create will raise a ENotImplemented there
git-svn-id: trunk@42709 -
2019-08-16 15:43:07 +00:00
svenbarth
2c4d7b6316
* implement a infrastructure for method thunks (these first adjust Self and then jump to the specified address)
...
git-svn-id: trunk@42708 -
2019-08-16 15:43:04 +00:00
florian
23585ded15
* fix access to ParamFlags of the tkMethod branch of type data for CPUs requiring proper alignment
...
git-svn-id: trunk@42511 -
2019-07-28 11:55:19 +00:00
svenbarth
de15025a47
* streamline retrieval of attributes (both in TypInfo and RTTI units)
...
git-svn-id: trunk@42373 -
2019-07-12 22:06:02 +00:00
svenbarth
e060a43d70
* rename TAttributeData to the more appropriate TAttributeTable
...
git-svn-id: trunk@42371 -
2019-07-12 22:05:55 +00:00
svenbarth
d137e06ade
* instead of embedding the attributes inside the class' and property's type data only store a reference to a table of attributes
...
git-svn-id: trunk@42365 -
2019-07-12 22:05:29 +00:00
svenbarth
b2932393df
Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]
...
Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.
git-svn-id: trunk@42356 -
2019-07-12 22:04:48 +00:00
michael
bf54543518
* Add SplitCommandLine
...
git-svn-id: trunk@42269 -
2019-06-22 13:37:47 +00:00
Jonas Maebe
c262c5dbc9
* synchronised with trunk till r42256
...
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
svenbarth
746756cada
* add typecast to PTypeInfo to be on the safe side
...
git-svn-id: trunk@42222 -
2019-06-13 21:08:48 +00:00
svenbarth
253f65c5b2
* fix for Mantis #35687 : implement TValue.FromOrdinal()
...
+ added tests
git-svn-id: trunk@42221 -
2019-06-13 21:08:44 +00:00
svenbarth
34569080be
* correctly handle both Ansi- and WideChar in TValue
...
+ added tests
git-svn-id: trunk@42220 -
2019-06-13 21:08:41 +00:00
svenbarth
a2a403e2e5
* fix for Mantis #35693 : IsOrdinal also needs to return true for enums (with that AsOrdinal will work correctly as well)
...
* extended RTTI test by a test for enums
git-svn-id: trunk@42219 -
2019-06-13 21:08:38 +00:00
Jonas Maebe
faf75095cd
* synchronised with trunk till r42189
...
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
svenbarth
fb0f2fbd35
* enable method implementation tests for i386 (interface tests will be ignored however as stdcall/cdecl are not yet provided without an external manager)
...
git-svn-id: trunk@42185 -
2019-06-06 20:51:57 +00:00
svenbarth
6b7ba589b9
* change fallback implementation of the RTTI memory functions to do nothing so that new platforms are easily detected
...
git-svn-id: trunk@42184 -
2019-06-06 20:50:46 +00:00
svenbarth
c008adb658
* implement memory allocation functions for Unix platforms using mmap/mprotect/munmap
...
git-svn-id: trunk@42183 -
2019-06-06 20:49:30 +00:00
svenbarth
f17c689829
+ add a size parameter to FreeMemory() as some platforms might need that
...
git-svn-id: trunk@42182 -
2019-06-06 20:48:30 +00:00
svenbarth
601f0bd6b1
* if the creation of the method implementation raises ENotImplemented we ignore the test as not all calling conventions might be supported currently (e.g. on i386 only "register" is for now)
...
git-svn-id: trunk@42151 -
2019-05-31 15:41:06 +00:00
svenbarth
4adce9b1bd
+ add function callback support for the Register calling convention on i386
...
git-svn-id: trunk@42150 -
2019-05-31 15:41:04 +00:00
Jonas Maebe
9e9a982bfe
* synchronised with trunk till r42095
...
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00
svenbarth
1d6b591872
* add tests for TVirtualInterface
...
git-svn-id: trunk@42089 -
2019-05-16 21:44:54 +00:00
svenbarth
16d9b5bee9
+ add TVirtualInterface which allows to implement a interface with method RTTI by merely providing an event handler
...
git-svn-id: trunk@42088 -
2019-05-16 21:44:50 +00:00
svenbarth
5d6a837b63
* also test callbacks for libffi
...
git-svn-id: trunk@42072 -
2019-05-15 05:28:57 +00:00
svenbarth
f6ca44292f
* move SErrMethodImplCreateFailed to interface
...
git-svn-id: trunk@42065 -
2019-05-15 05:28:36 +00:00
Jonas Maebe
1b6425176b
* synchronised with trunk till r42049
...
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
michael
43da09722c
* Patch from Ondrej Pokorny to fix bug ID #35544 (accept short timezones)
...
git-svn-id: trunk@42040 -
2019-05-12 07:51:38 +00:00
svenbarth
3493579c2d
* avoid a warning regarding automatic type conversion of Comp
...
git-svn-id: trunk@42035 -
2019-05-10 15:49:23 +00:00
svenbarth
c4c47652d4
* missed two usages of SErrCallbackNotImplented
...
git-svn-id: trunk@42034 -
2019-05-10 15:44:29 +00:00
svenbarth
a0f03ca1b9
- declaring the missing pointer types for the Boolean types is no longer necessary
...
git-svn-id: trunk@42033 -
2019-05-10 15:27:23 +00:00
svenbarth
496fbb4fc1
* fix typo
...
git-svn-id: trunk@42031 -
2019-05-10 15:25:05 +00:00
Jonas Maebe
3a1fb45315
* synchronised with trunk till r41976
...
git-svn-id: branches/debug_eh@41977 -
2019-05-02 19:44:41 +00:00
michael
858030d826
* Fix compilation on 16-bit targets
...
git-svn-id: trunk@41961 -
2019-04-30 05:53:38 +00:00
michael
135e74c65d
* Avoid ScanDateTime in TryISO functions, it raises an exception
...
git-svn-id: trunk@41958 -
2019-04-28 17:15:35 +00:00
michael
74455d0720
* Added ISO8601ToDate and inverse (Bug ID 35307)
...
git-svn-id: trunk@41954 -
2019-04-28 11:47:49 +00:00
Jonas Maebe
128bf046b4
* regenerated Makefiles with LLVM bitcode installation support
...
git-svn-id: branches/debug_eh@41914 -
2019-04-20 18:56:45 +00:00
svenbarth
c6d963ccd9
* also enable implementation tests on Win64
...
git-svn-id: trunk@41842 -
2019-04-05 15:24:34 +00:00
svenbarth
cfdd800591
* also handle const untyped parameters if they're to be passed on the stack
...
git-svn-id: trunk@41841 -
2019-04-05 15:24:31 +00:00