Jonas Maebe
b8e9fd5c00
* use blx also for ARMv5, since it works on non-T variants and is required
...
for correct operation on T-variants (patch by Dejan Boras, mantis #18819 )
git-svn-id: trunk@17001 -
2011-02-25 19:46:35 +00:00
florian
f8b01f76a4
* update of german message files by Karl-Michael Schindler, resolves #18815
...
git-svn-id: trunk@16995 -
2011-02-24 12:48:40 +00:00
joost
db6bc3bd00
* Replace environment variables placed between dollar signs in fpc.cfg
...
with the value of the environment variable.
git-svn-id: trunk@16945 -
2011-02-20 00:04:20 +00:00
Jonas Maebe
601b90d74c
* don't specify a custom pagezero size on Mac OS X when compiling with -gv
...
(Valgrind support), because Valgrind cannot deal with that
git-svn-id: trunk@16916 -
2011-02-14 20:31:30 +00:00
Jonas Maebe
a199344bf4
* don't check for duplicate symbols when adding a class helper symbol, see
...
added comments why (solves duplicate symbol error when adding a category
for an objcclass in the interface and then another one in the
implementation of a unit, problem reported by Ryan Joseph on the
mac-pascal list)
git-svn-id: trunk@16902 -
2011-02-09 20:17:34 +00:00
Legolas
527dd56b28
+ Initial Wii support
...
git-svn-id: trunk@16888 -
2011-02-07 16:56:45 +00:00
armin
fc34ef31c7
FindUtil was called in SetDefaultInfo and in MakeExecutable.
...
git-svn-id: trunk@16885 -
2011-02-06 16:25:18 +00:00
sergei
71cce9716d
* Parse 'variant_expression.ident[parameters]' as a parametrized property access, rather than non-parametrized property followed by array subscript. This corresponds to Delphi behavior and fixes Mantis #17127 .
...
* Fixed the related test: Excel Worksheet interface does not have a default property.
git-svn-id: trunk@16864 -
2011-02-02 09:11:11 +00:00
sergei
4aeef5b150
Fixes to dispatch calls:
...
* Pass dispinterfaces with correct type (varDispatch).
* Pass skipped parameters as EmptyParam (vType=varError, vError=DISP_E_PARAMNOTFOUND), as COM requires to preserve correct argument count and positions.
* Since ttempcreatenode.size can be set after creation, don't calculate parameter size in first pass, this simplifies things a bit.
git-svn-id: trunk@16863 -
2011-02-01 16:43:18 +00:00
florian
e7fa076b70
* handle variables without explicit size prefix better in inline assembler, resolves #18009
...
git-svn-id: trunk@16859 -
2011-01-30 21:57:30 +00:00
sergei
0a9fdb71e5
- translate_disp_call: removed a couple of unnecessary variables.
...
git-svn-id: trunk@16858 -
2011-01-30 21:11:20 +00:00
Jonas Maebe
9604ae2908
* also delete ppcppc64, ppcarm, ppcmips and ppcmipsel in the execlean target
...
git-svn-id: trunk@16856 -
2011-01-30 19:58:15 +00:00
florian
cc10ab57ab
* create a stub on all targets when the external name changes, resolves #18371
...
git-svn-id: trunk@16854 -
2011-01-30 19:17:53 +00:00
florian
1fef7e4b6c
+ introduces vo_volatile for variables, the node cse optimizer takes care of it
...
git-svn-id: trunk@16851 -
2011-01-30 16:32:50 +00:00
florian
e99c4d1950
+ support str(<boolean>,...), boolean is an enumeration type
...
* don't run pass_1 on str or val calls in generic method/procedure definitions, resolves #18420
git-svn-id: trunk@16849 -
2011-01-30 14:27:09 +00:00
florian
ec2d294287
* compiler works again compiled with $R+
...
git-svn-id: trunk@16848 -
2011-01-30 12:45:04 +00:00
Jonas Maebe
eab29db98a
* merged tasnode.pass_typecheck() and tisnode.pass_typecheck() into a single
...
tasisnode.pass_typecheck() since they were almost identical (only the
resultdef of the nodes is different)
git-svn-id: trunk@16846 -
2011-01-30 10:37:21 +00:00
Jonas Maebe
be2bb0b2e1
* free function return location if the callnode immediately copies it to a
...
different funcretnode location
git-svn-id: trunk@16839 -
2011-01-29 22:25:45 +00:00
paul
a04481c89f
compiler: simplify enumerator search methods of TObjectDef by reusing implementation from TAbstractRecordDef
...
git-svn-id: trunk@16836 -
2011-01-29 17:34:09 +00:00
sergei
4780278e7b
Fix Mantis #11783 :
...
* Dispinterfaces can be assigned/typecasted to Variants and vice-versa.
* At the same time, disabled corbainterface assignment compatibility with Variants. Simply intermixing COM and CORBA interfaces is wrong since it causes reference counting calls on CORBA interfaces.
* Dispinterfaces are returned in parameter, similar to regular interfaces.
* Fixed crash in comobj.pp due to incorrect typecast.
* Fixed incorrect dispinterface declarations in the test itself. Now it compiles and works (if MS Excel is installed).
git-svn-id: trunk@16835 -
2011-01-29 13:18:34 +00:00
paul
e4a6221bf3
compiler, rtl: add vtUnicodeString (issue #0018560 )
...
git-svn-id: trunk@16833 -
2011-01-29 09:18:53 +00:00
paul
e77a9051c8
compiler: treat record/class fields types as bt_var_type block in delphi mode - as result they don't create a forward declaration for ^Type. Leave it as is for other modes because in other case it break the compilation of RTL and packages (fixes issue #0018620 )
...
git-svn-id: trunk@16832 -
2011-01-29 07:32:10 +00:00
paul
27bb39a1ca
compiler: comment tblock_type members
...
git-svn-id: trunk@16823 -
2011-01-28 06:54:38 +00:00
Jonas Maebe
04e26bfc85
* corrected version of r16812: code generation is still handled specially
...
for assigned(), but the type information is now correct so it doesn't
have to be forced to OS_ADDR anymore
git-svn-id: trunk@16819 -
2011-01-26 14:50:18 +00:00
paul
0f35da07f1
compiler: call gen_intf_wrappers not only for unit symtables but also for syntables of records and object types because they can contain nested classes (bug #0018610 )
...
git-svn-id: trunk@16818 -
2011-01-26 13:50:36 +00:00
Jonas Maebe
ed1485c33e
- reverted r16812 for now because it breaks building some packages
...
git-svn-id: trunk@16815 -
2011-01-25 21:46:25 +00:00
Jonas Maebe
b0f3fd2533
* completely handle assigned() in pass_1, replaced second_assigned with
...
internalerror
git-svn-id: trunk@16812 -
2011-01-25 08:01:14 +00:00
sergei
58f37dc952
Improvements to dispinterface property handling:
...
* Create implicit access methods, which hold type information for property parameters and allow parsing/typechecking occur the same way as for regular (non-dispinterface) properties.
+ Introduce separate proctypeoptions for property access methods. They are translated into correct dispatch call types and used to distinguish property access from regular method calls.
* Bump PPU version because new information has been introduced.
- Code specific to dispinterface properties in expression parser is no longer necessary, removed.
* Allow access to default property with [] for dispinterfaces.
+ Extended the test with basic correctness checks for property dispatching.
git-svn-id: trunk@16810 -
2011-01-24 20:30:48 +00:00
sergei
ba74d47081
* pdecvar.pas, refactoring: don't create storedprocdef unless it is actually required.
...
+ Added statement to dispose storedprocdef after use, it was missing.
git-svn-id: trunk@16809 -
2011-01-24 17:15:51 +00:00
paul
ae7bfbb578
compiler: don't connect parasyms to procdefinition in tcallnode.derefimpl if procdefinition is not defined (a possible case for a generic method) (fixes issue #0018573 )
...
git-svn-id: trunk@16808 -
2011-01-24 06:42:47 +00:00
paul
a39733a0a2
compiler: extend enumerator support for records:
...
- search GetEnumerator method in records too (while searching a enumerator for structure)
- allow enumerator operator return type to be a record
- copy/adapt enumerator helpers from tobjectdef to tabstractrecorddef
+ test
git-svn-id: trunk@16807 -
2011-01-24 04:13:28 +00:00
paul
8102c480d7
compiler: generate an error message if enumerator operator is declared with return object which has no valid MoveNext method, Current property
...
git-svn-id: trunk@16806 -
2011-01-24 03:08:22 +00:00
paul
9499692eeb
compiler: allow Assignment and Explicit operators for undefined defs (issue #0018567 )
...
git-svn-id: trunk@16805 -
2011-01-24 03:06:27 +00:00
florian
af020e8ebc
* fix assembling of ljmp mem, resolves #18556
...
git-svn-id: trunk@16802 -
2011-01-23 12:18:14 +00:00
florian
0be59445f8
+ basic i386-embedded implementation for multiboot by Jeppe Johansen, resolves #15676
...
git-svn-id: trunk@16801 -
2011-01-23 11:18:50 +00:00
florian
197049c221
* updated to version 9
...
git-svn-id: trunk@16800 -
2011-01-23 11:01:37 +00:00
paul
0be10ee19f
compiler: fix comments
...
git-svn-id: trunk@16796 -
2011-01-21 02:21:15 +00:00
Jonas Maebe
9a6f574f06
* removed (already unused, because of never taken branch) handling of
...
interfacecom in subscriptnodes, because a COM interface cannot have fields
-> replaced with check (that actually is performed) to give an
internalerror() should a reference-counted class type be subscripted
git-svn-id: trunk@16786 -
2011-01-19 14:50:17 +00:00
marco
88fe11958b
* one letter type fixed, reported by Vincent
...
git-svn-id: trunk@16783 -
2011-01-19 11:37:17 +00:00
marco
ee3004a350
* moved an \end{description} so that the user manual compiles again.
...
git-svn-id: trunk@16782 -
2011-01-19 10:59:49 +00:00
paul
731291aee0
compiler: change Addr function to return untyped pointer by Blaise Thorn (issue #0018512 ), change/add tests
...
git-svn-id: trunk@16777 -
2011-01-18 15:23:58 +00:00
Jonas Maebe
e85df4028c
* factored out handling of static field accesses
...
git-svn-id: trunk@16770 -
2011-01-15 20:30:11 +00:00
Jonas Maebe
8a389c16d7
* fixed indentation
...
git-svn-id: trunk@16767 -
2011-01-15 14:17:50 +00:00
paul
0c9b40acb7
compiler: record operators
...
- allow operator also if return type match the structure type (before at least one parameter had to match)
- search both operands symbol tables for a suitable assignment operator
- test
based on patch of Blaise Thorn (issue #0018490 )
git-svn-id: trunk@16762 -
2011-01-14 02:25:48 +00:00
paul
368c215070
compiler: always derive DispInterface from IDispatch, this solve a problem with assigning dispinterface to IUnknown or IDispatch variables
...
git-svn-id: trunk@16756 -
2011-01-13 04:43:49 +00:00
paul
dad8313512
compiler: handle dispinterfaces the same way as com interfaces because they are IDispatch descendants: increment/decrement they references in assignments and parameters passing by _AddRef, _Release
...
git-svn-id: trunk@16755 -
2011-01-13 03:38:45 +00:00
sergei
3a23a3ebe0
Initial support of parametrized dispinterface properties:
...
* When parsing dispinterface properties, pass parameter/index nodes to translate_disp_call() instead of dropping them.
* Distinguish property getters from regular method calls and generate appropriate call descriptors.
git-svn-id: trunk@16753 -
2011-01-12 00:39:11 +00:00
Jonas Maebe
bbf0e35a51
+ Support for ARM CPS/CPSIE/CPSID instructions and mode flag bitfield
...
operand (patch by Jeppe Johansen, mantis #18334 )
git-svn-id: trunk@16750 -
2011-01-11 16:02:51 +00:00
Jonas Maebe
d76ddcabe6
* don't give an internalerror when trying to explicitly apply an invalid
...
typecast to an array-of-const (mantis #18267 )
git-svn-id: trunk@16749 -
2011-01-11 15:47:56 +00:00
joost
1e92e576dd
* Use TDebugInfoDwarf2.appenddef_object's DoAppend also for writing the
...
debuginfo for standard classes in the Dwarf-3 format. (No changes for -gw2
debuginfo. -gw3 debuginfo is changed)
git-svn-id: trunk@16748 -
2011-01-11 10:28:35 +00:00