Commit Graph

324 Commits

Author SHA1 Message Date
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