Jonas Maebe
c60bcf8699
* fixed changing the visibility of a property with a fixed index in a child
...
class (mantis #15610 )
git-svn-id: trunk@15223 -
2010-05-04 14:41:22 +00:00
paul
24d8a7d833
compiler: start implementation of class constructors/destructors: parsing is ready but at the moment neither class constructors nor destructors are called - this is to be implemented
...
git-svn-id: trunk@15109 -
2010-04-03 09:14:12 +00:00
paul
c879230f08
compiler: fix parsing and handling of typed constants declared inside classes/objects + tests
...
git-svn-id: trunk@15094 -
2010-03-30 07:09:44 +00:00
paul
973d947d6c
compiler: allow const, type, var and class var sections for objects + test
...
git-svn-id: trunk@15092 -
2010-03-30 04:22:19 +00:00
paul
49d94c5a16
compiler: implement {$VARPROPSETTER ON/OFF} support which is required for COM (D7 compatibility):
...
- add an option to skip varspez during parameters comparison
- skip varspez comparison when searching a property reader candidate if $VARPROPSETTER is ON
git-svn-id: trunk@15020 -
2010-03-17 09:56:50 +00:00
Jonas Maebe
88f5addd1c
* do not typecheck statements before checking whether they are valid,
...
because the associated simplifications can turn invalid statements
into valid statements (based on patch by Aleksa Todorovic, mantis
#15594 )
git-svn-id: trunk@14998 -
2010-03-09 21:13:22 +00:00
Jonas Maebe
77d5d9435b
* corrected detection of the start of variant parts of records
...
git-svn-id: trunk@14962 -
2010-03-01 19:16:00 +00:00
Jonas Maebe
674cdaf3fc
* handle fields with the same name as a type also correctly in case of
...
nested records (mantis #15592 )
git-svn-id: trunk@14910 -
2010-02-13 20:51:19 +00:00
paul
bd6f1d7447
compiler: auto generate method/property dispid if it is not set explicitly
...
git-svn-id: trunk@14766 -
2010-01-22 02:46:03 +00:00
paul
1ae0cebc1a
compiler: implement dispinterface properties + modified test
...
git-svn-id: trunk@14747 -
2010-01-19 09:58:08 +00:00
paul
e9214c1826
compiler: improve comparison for property and getter. it was possible to declare a class property with regular method for the getter because of cpo_ignorehidden flag
...
git-svn-id: trunk@14650 -
2010-01-15 15:49:34 +00:00
paul
9513b50d26
compiler: don't allow to publish class properties + test
...
git-svn-id: trunk@14640 -
2010-01-14 15:21:13 +00:00
paul
77a2c316dd
compiler: use sp_internal instead of vo_is_internal for internal symbols used for static fields, remove vo_is_internal
...
git-svn-id: trunk@14631 -
2010-01-14 03:50:01 +00:00
paul
c9987c296e
compiler: don't show notes for symbols which are created by static class fields, update ppudump and ppu version
...
git-svn-id: trunk@14608 -
2010-01-11 06:38:40 +00:00
paul
cb54b3e7a9
compiler: allow class to have local type sections + tests
...
git-svn-id: trunk@14605 -
2010-01-11 02:35:10 +00:00
paul
4b53a54b51
compiler: implement 'var' and 'class var' sections for classes + tests
...
git-svn-id: trunk@14598 -
2010-01-10 13:48:43 +00:00
paul
3ed4c58502
compiler:
...
- implement class properties: properties which can access only static fields and static class methods
- tests
- fix a possibility to call an instance method from the class method
git-svn-id: trunk@14585 -
2010-01-09 18:37:54 +00:00
Jonas Maebe
9cc211e88e
* changed {$align mac68k} from an alias for {$packrecords 2} to a proper
...
implementation for mac68k alignment (mantis #15061 )
* changed {$align power} from an alias for {$packrecords 4} to an alias for
{$packrecords c}, as Power alignment is the default C alignment for
PowerPC under Mac OS X (it's close to {$packrecords 4}, but not identical)
git-svn-id: trunk@14577 -
2010-01-08 15:36:22 +00:00
paul
8166148a37
compiler: 'static' keyword:
...
- deprecate -St compiler switch
- remove $STATIC directive
- unconditionally enable 'static' keyword usage
- adopt tests, samplecfg, fpc.cft, error messages
git-svn-id: trunk@14569 -
2010-01-07 19:02:09 +00:00
florian
c1f3d8dcaa
* unified names of system_*/systems_* sets
...
git-svn-id: trunk@14566 -
2010-01-07 18:16:20 +00:00
florian
dab642986e
* patch by Sergei Gorelkin, fixes several issues with implements, resolves #15209
...
git-svn-id: trunk@14466 -
2009-12-23 16:23:19 +00:00
Jonas Maebe
164db72f07
* implements getter must used target's default calling convention, because
...
it's called indirectly via an RTL helper that expects this (mantis #15303 )
git-svn-id: trunk@14397 -
2009-12-10 21:47:47 +00:00
giulio2
58eb923ff5
Allow negative offset in segment:offset declarations, if the resulting
...
address is valid (fixes webtbs/tw1622.pp on go32v2).
git-svn-id: trunk@14100 -
2009-11-07 14:38:13 +00:00
Jonas Maebe
559e284bd0
* merged r13762-14047 from trunk
...
git-svn-id: branches/objc@14048 -
2009-11-04 15:50:26 +00:00
paul
e784ec1079
merge revisions 13898-13899:
...
- compiler: allow message after the *deprecated* keyword
- compiler: raise an internal error if deprecated message is trying to set to a non clear string pointer
git-svn-id: trunk@13997 -
2009-11-01 14:06:30 +00:00
Jonas Maebe
1eceb2ca65
* don't allow properties to expose private fields of parent classes
...
(mantis #14650 )
git-svn-id: trunk@13794 -
2009-10-02 13:50:52 +00:00
Jonas Maebe
5082e23d57
Merged revisions 13599-13600,13602-13604,13608,13615-13618 via svnmerge from
...
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk
git-svn-id: branches/objc@13621 -
2009-08-30 09:50:36 +00:00
florian
e8dff46f8e
* several small bugs in the handling of implements fixed, resolves #14418
...
git-svn-id: trunk@13615 -
2009-08-30 08:01:10 +00:00
Jonas Maebe
a149674a75
Merged revisions 13458-13596 via svnmerge from
...
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk
git-svn-id: branches/objc@13598 -
2009-08-25 19:47:36 +00:00
Jonas Maebe
a59c8974f3
* mark first fields of records and variant parts of records, as is also
...
done in the llvm branch (necessary to encode variant records in the
notation used by the Objective-C runtime)
git-svn-id: branches/objc@13556 -
2009-08-18 19:48:19 +00:00
florian
10ede51609
* access static fields by a absolute sym pointing to the symbol for the space allocation, resolves #14124
...
git-svn-id: trunk@13512 -
2009-08-10 18:46:23 +00:00
florian
5bccfc5aee
* allow cvar and external with libname, cvar is only a naming convention so it is orthogonal to external
...
git-svn-id: trunk@13416 -
2009-07-19 19:41:27 +00:00
Jonas Maebe
52c6f14de5
* do not allow local type definitions such as string[1] and "file of byte"
...
inside parameter lists and function results (fixes second problem
reported in mantis #14104 , see also
http://wiki.freepascal.org/User_Changes_Trunk#Local_type_definitions_in_parameter_lists
)
git-svn-id: trunk@13372 -
2009-07-08 20:21:37 +00:00
Jonas Maebe
7bf643746e
* reject "absolute" variables referencing locations with implicit
...
dereferences (the tests from the previous commit were actually
for this change)
git-svn-id: trunk@12878 -
2009-03-13 21:17:39 +00:00
Jonas Maebe
c4bedeb9df
* we have to be able to take the address of an "absolute" variable
...
expression (necessary to, a.o., reject absolute mappings to fields
of bitpacked records and to bitpacked array elements)
git-svn-id: trunk@12874 -
2009-03-12 20:12:14 +00:00
Jonas Maebe
9b790edd4f
* fixed parsing of "var x: <type> absolute <value>;" on 64 bit platforms
...
(tests/tbs/tb0350)
git-svn-id: trunk@12715 -
2009-02-08 09:00:49 +00:00
Jonas Maebe
ae45a80d46
* allow the usage of symbolic constants to specify the "stored" attribute
...
of properties (mantis #10492 ). Not really clean (and Delphi supports
full expressions, e.g. also "(const1=const2)"), but cannot do better
without rewriting the complete symlist parsing to use parse trees instead
of parser tokens as input
git-svn-id: trunk@12696 -
2009-02-06 19:54:29 +00:00
michael
11a41788fb
* Fixed lost default value in case of a property override
...
git-svn-id: trunk@12114 -
2008-11-15 22:13:59 +00:00
peter
a3a66ba74d
* split tvisibility from tsymoptions
...
* replace current_object_option with symtable.currentvisibility
git-svn-id: trunk@12048 -
2008-11-11 09:05:39 +00:00
peter
af437d5beb
* refactor the forward type declaration handling, remove
...
global typecanbeforward and move 'class of ..' parsing
to ptype
git-svn-id: trunk@12045 -
2008-11-09 22:07:36 +00:00
Jonas Maebe
a23630260b
+ "weakexternal" support for imported procedures and variables.
...
the syntax is exactly the same as for "external", except for
the keyword. It is currently only active for Darwin targets.
It should also work at least for Linux targets, but only with
the GNU assembler (which is why it is not activated there)
+ test for this functionality
git-svn-id: trunk@12009 -
2008-11-01 18:38:32 +00:00
Jonas Maebe
e43ae1ceee
* use p.resultdef (representing a property array range) before freeing p
...
git-svn-id: trunk@11721 -
2008-09-07 13:31:39 +00:00
michael
d2169a7e43
* In case no default is specified and no NoDefault is present, act as if NoDefault was given. (bug ID 10080, now we are Delphi compatible)
...
git-svn-id: trunk@11682 -
2008-09-01 10:05:52 +00:00
Jonas Maebe
7e4750ac50
* workaround for default property constant value limitations
...
git-svn-id: trunk@10575 -
2008-03-28 10:15:33 +00:00
florian
00ae5d1d5d
+ correct parsing interface delegation through classes
...
git-svn-id: trunk@10466 -
2008-03-09 11:16:05 +00:00
peter
8f239d04b6
* cleanup and simplify the set type handling
...
git-svn-id: trunk@10432 -
2008-03-02 17:48:27 +00:00
florian
6c53785e3a
* first part of implements clean up and fixing
...
git-svn-id: trunk@10382 -
2008-02-24 11:05:46 +00:00
Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
yury
13d948c07b
* Fixed: import Address Table should contain the same data as Import Lookup Table.
...
* Perform import by name with index as hint, if both import name and import index are specified.
* Fixed import by ordinal when external linker is used.
* Fixed some warnings and notes.
git-svn-id: trunk@9083 -
2007-11-02 23:07:15 +00:00
florian
00fef0fdd0
* allow the usage of fields of parent classes for property readers/writers, resolves #9095
...
git-svn-id: trunk@8799 -
2007-10-14 17:54:00 +00:00