Commit Graph

11560 Commits

Author SHA1 Message Date
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
91ed1c6e6f compiler: types in classes:
- fix type visibility (was always public)
  - fix parsing of class sections after the type declaration
  - allow nested classes declarations
  + tests

git-svn-id: trunk@14607 -
2010-01-11 06:22:57 +00:00
paul
8de3b267a9 compiler: fix message regards VAR and TYPE sections in objects
git-svn-id: trunk@14606 -
2010-01-11 02:39:10 +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
florian
39ec69f690 * contiued to fix node cse, the insertation location for the temp. assignment is still not always correct though
git-svn-id: trunk@14604 -
2010-01-10 22:19:27 +00:00
Jonas Maebe
a1bcc1c8d2 * turn openstring value parameters into regular shortstring parameters
(mantis #14940 and #14941)
  * only turn var/our shortstring parameters with a length of 255 into
    openstring parameters with {$p+} (new tbf/tb0217.pp)

git-svn-id: trunk@14602 -
2010-01-10 15:36:23 +00:00
florian
79f084167a * increased ppu version due to r14596
git-svn-id: trunk@14599 -
2010-01-10 14:11:28 +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
florian
6b63837ae7 * rewrote node cse, needs still testing and bug fixing
git-svn-id: trunk@14597 -
2010-01-10 13:38:58 +00:00
florian
7707e6a030 + tempcreate nodes can now take an init. value, this allows to initilialize temp. ref nodes on the fly
git-svn-id: trunk@14595 -
2010-01-10 13:19:16 +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
77fd8bacc7 * fixed compiler crash when using nested procedures in Objective-C methods
git-svn-id: trunk@14583 -
2010-01-09 15:05:24 +00:00
Jonas Maebe
b4058a57ad * maxcrecordalign for darwin/ppc64 is 4 instead of 8 (at least for the types
that we support), fixes webtbs/tw15061a.pp on darwin/ppc64
  * webtbs/tw15061a.pp is only for darwin/ppc and darwin/ppc64

git-svn-id: trunk@14582 -
2010-01-09 11:22:33 +00:00
paul
2fdf045e74 compiler: don't remove 'self' if the method is static but not a class method
git-svn-id: trunk@14579 -
2010-01-08 17:28:43 +00:00
paul
58c71c3c59 compiler: allow to skip the 'static' modifier in the method implementation + modified test
git-svn-id: trunk@14578 -
2010-01-08 16:32:55 +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
florian
d56bd6d246 * give better error messages if an operator is not overloaded
git-svn-id: trunk@14575 -
2010-01-08 14:09:29 +00:00
paul
ea88883915 compiler: fix access to static class fields from the static class methods + extended test
git-svn-id: trunk@14574 -
2010-01-08 10:54:35 +00:00
paul
67ae263dd9 compiler: load methodpointer for static class methods - fixes internal error 200305061 when some class member is called inside the class static method + test
git-svn-id: trunk@14571 -
2010-01-07 20:35:23 +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
34227e811d + patch by Sven Barth to add native NT rtl support to the compiler, resolves #14886
git-svn-id: trunk@14565 -
2010-01-07 17:42:11 +00:00
pierre
9896f48317 * Fix for RTTI alignment from Paul
git-svn-id: trunk@14564 -
2010-01-07 17:05:11 +00:00
florian
158e36b9c5 * white space and indention fixes
git-svn-id: trunk@14553 -
2010-01-06 10:39:19 +00:00
paul
bf45b463bc compiler: fix no finalization calls for libraries caused by r14543
git-svn-id: trunk@14552 -
2010-01-06 09:03:09 +00:00
paul
4989a1016f compiler: don't use non-visible for current unit assignment and enumerator operators (fixes test webtbf/tw4103)
git-svn-id: trunk@14550 -
2010-01-05 21:22:54 +00:00
Jonas Maebe
285ea223d4 * replaced commented-out code from r14543 with a comment explaining why that
code is no longer necessary

git-svn-id: trunk@14549 -
2010-01-05 19:53:43 +00:00
Jonas Maebe
5cca798316 * fix crashes when compiling with -gt
git-svn-id: trunk@14548 -
2010-01-05 19:52:53 +00:00
paul
556afdca51 compiler: fix uninitialized result caused by r14543
git-svn-id: trunk@14547 -
2010-01-05 19:15:16 +00:00
Jonas Maebe
80b651f79c * fixed (harmless) class cast error
git-svn-id: trunk@14546 -
2010-01-05 17:57:16 +00:00
paul
f25c21c287 compiler: fix wrong typecast
git-svn-id: trunk@14545 -
2010-01-05 16:22:26 +00:00
paul
8b27daae2c compiler: don't generate code for empty initialization and finalization sections (with help of Florian) (issue #0013482)
git-svn-id: trunk@14543 -
2010-01-05 16:07:37 +00:00
Jonas Maebe
83c3e7a94b * fixed pred/succ for integer constants that equal the low/high bound of a
built-in integer type (reported by Stefan Kisdaroczi) 

git-svn-id: trunk@14537 -
2010-01-04 15:12:27 +00:00
florian
40cea8d4d5 * handle mm register properly when used as top_local, resolves #14566
git-svn-id: trunk@14535 -
2010-01-03 20:33:01 +00:00
Jonas Maebe
b4c572483b * always call procvars inside varargs in TP/Delphi mode (mantis #15446)
git-svn-id: trunk@14527 -
2010-01-02 21:43:19 +00:00
florian
3fa46810be * don't generate invalid line information for template specializations if no line info is available, resolves #9671
git-svn-id: trunk@14525 -
2010-01-02 17:56:30 +00:00
Jonas Maebe
407d60f8a4 * fixed in case fpc is installed under a path containing spaces
git-svn-id: trunk@14524 -
2010-01-02 17:27:03 +00:00
Jonas Maebe
b3a1833e0f * lowered symbol length at which we start shortening it with a crc so
tw15203 also compiles on darwin

git-svn-id: trunk@14517 -
2010-01-02 11:54:16 +00:00
Jonas Maebe
04606982ac * fixed evaluation of "mod" operator for tconstexprint with signed operands
(part of mantis #15453)

git-svn-id: trunk@14516 -
2010-01-01 22:50:35 +00:00
florian
81f34dd4bb * avoid too long prefixes of manglednames by using a CRC like for long parameter name lists, resolves #15203
git-svn-id: trunk@14515 -
2010-01-01 21:56:55 +00:00
paul
c83fc67e32 compiler: write correct method kind for constructors,destructors and class methods
git-svn-id: trunk@14512 -
2010-01-01 20:22:02 +00:00
paul
db0f23e643 compiler: write not dummy unit name for enumeration and dynamic array rtti
git-svn-id: trunk@14511 -
2010-01-01 19:32:53 +00:00
Jonas Maebe
dd94f5cf2b * no longer allow typed files of reference counted data (mantis #15447)
git-svn-id: trunk@14509 -
2010-01-01 14:56:33 +00:00
paul
17bd267141 compiler, rtl: write calling conventions for tkMethod members (issue #0014573)
git-svn-id: trunk@14508 -
2010-01-01 14:36:33 +00:00
Jonas Maebe
7592388858 * the parameter to flagdependent() is not the ppu for which to flag the
dependent units, but the ppu that caused the current unit to be loaded
    -> last comment of r14505 was wrong, and that change has been reverted

git-svn-id: trunk@14506 -
2010-01-01 12:17:52 +00:00
Jonas Maebe
820edb41a5 * hopefully fixed occasional endless ppu resolving loops after r14503
o keep track of a global defsgeneration counter that's increased every time
      a unit has finished compiling its interface or implementation
    o give each ppumodule the current defsgeneration number when its compiled
    o only re-resolve a unit if its defsgeneration number is smaller than that
      of the unit that wants it to be re-resolved
  * fixed an error in the re-resolving logic added last time: re-resolve
    units that depend on the current unit rather than those that also depend
    on the parent unit

git-svn-id: trunk@14505 -
2009-12-31 13:28:38 +00:00
Jonas Maebe
1743c6f1a8 * also recompile a unit if class/object definitions in indirectly used
units have changed, because these can influence the code of the
    current unit in case method signatures changed (mantis #13840)
    + manual test
  * fixed some recompilation crashes related to WPO info
  * clarified the unit_u_add_depend_to message

git-svn-id: trunk@14503 -
2009-12-30 14:03:31 +00:00
Jonas Maebe
58c7c2f636 * fixed compilation in case overflow checking is enabled, but range
checking isn't

git-svn-id: trunk@14502 -
2009-12-30 13:21:23 +00:00
florian
701d911f58 * continued on node cse
git-svn-id: trunk@14496 -
2009-12-29 19:45:33 +00:00
florian
fdb67a28ab * node complexity of subscribing increased because it's not only a simple operation to a register but requires a memory access
git-svn-id: trunk@14495 -
2009-12-29 19:43:32 +00:00