Commit Graph

12159 Commits

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