Commit Graph

11757 Commits

Author SHA1 Message Date
paul
fcaac0ebe1 compiler,rtl - safecall handling:
- pass address to SafeCallException  method(rtl needed a modification)
  - improve code generation for regular safecall routines (not methods)
  - improve test - check that passed exception and address are valid

git-svn-id: trunk@14946 -
2010-02-27 04:41:52 +00:00
paul
cf0a1b1af9 compiler: safecall exception handling:
- move safecall exception handling from codegenerator to generate_except_block method (which generates nodes)
  - call SafeCallException for safecall methods which raises an exception

git-svn-id: trunk@14940 -
2010-02-26 10:17:24 +00:00
marco
bb385c385d * translation updates from kms (Mantis 15849)
git-svn-id: trunk@14937 -
2010-02-26 09:01:09 +00:00
Jonas Maebe
8a1f272c6b * de-tabbed
git-svn-id: trunk@14928 -
2010-02-19 17:19:50 +00:00
Jonas Maebe
cda17ad02a * correctly set the expectloc for int_2_int type conversions of bitpacked
arrays (and some other, related constructs) (mantis #15789)

git-svn-id: trunk@14927 -
2010-02-19 17:12:47 +00:00
Jonas Maebe
071bca7d93 * set expectloc in first_abs_long (mantis #15790)
git-svn-id: trunk@14926 -
2010-02-19 16:46:46 +00:00
Jonas Maebe
fe5d0b0ef4 * fixed internalerror in case of dereferencing a loc_(c)subsetreg/ref
(mantis #15812)

git-svn-id: trunk@14925 -
2010-02-19 16:26:36 +00:00
Jonas Maebe
0d57bba4c9 * fixed ARM and MIPS compilation after r14912
git-svn-id: trunk@14923 -
2010-02-18 21:19:17 +00:00
Jonas Maebe
23e517a81e + {$OV+/-} alias for {$Q+/-} in macpas mode for CodeWarrior compatibility
(patch by Adriaan van Os, mantis #15767)

git-svn-id: trunk@14916 -
2010-02-14 21:51:45 +00:00
Jonas Maebe
78b9820e11 * support record fields separated by commas instead of semicolons in typed
constant record definitions in MacPas mode (patch by Adriaan van Os,
    mantis #15764)

git-svn-id: trunk@14915 -
2010-02-14 14:33:30 +00:00
Jonas Maebe
1b7dacfd1c * make {$align powerpc} an alias for {$align power} (patch by
Adriaan van Os, mantis #15762)

git-svn-id: trunk@14914 -
2010-02-14 13:59:13 +00:00
Jonas Maebe
7201d61d20 * forgotten, part of r14912
git-svn-id: trunk@14913 -
2010-02-14 13:53:37 +00:00
Jonas Maebe
025ec34e4d + "CExtended" type that is the same as "extended", but conforming to the
properties/behaviour of the equivalent of Extended in C (i.e., to
    "long double" on i386 and x86_64 platforms that support a 10 byte
    long double, and to "double" elsewhere)

git-svn-id: trunk@14912 -
2010-02-14 13:45:58 +00:00
Jonas Maebe
650ba6d50f * an int2int type conversion doesn't retain the value location in
case of a bitpacked access

git-svn-id: trunk@14911 -
2010-02-13 20:56:02 +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
Jonas Maebe
f530de8da6 * also honor keep_sign_equal in get_common_intdef() for signed types
(r14892)

git-svn-id: trunk@14909 -
2010-02-13 20:50:18 +00:00
Jonas Maebe
fea789eca4 * fixed (harmless) range check errors
git-svn-id: trunk@14908 -
2010-02-13 20:48:59 +00:00
Jonas Maebe
efcc6f6440 * also handle statement nodes in has_no_code()
git-svn-id: trunk@14907 -
2010-02-13 20:48:38 +00:00
Jonas Maebe
a37850742c * fixed range check error if cstringpattern is empty (r14789, r14850)
git-svn-id: trunk@14906 -
2010-02-13 20:48:14 +00:00
Jonas Maebe
bb28dd7d08 * also show Darwin-specific external resource options for ARM and x86_64
* documented how to specify ARM-specific and x86_64-specific options in
    the help pages

git-svn-id: trunk@14905 -
2010-02-13 20:45:57 +00:00
Jonas Maebe
38b1271a21 * fixed wrong range check errors for "qword and constant" after
r14892

git-svn-id: trunk@14904 -
2010-02-13 20:44:03 +00:00
Jonas Maebe
1f4d7d6057 * add type symbol names to -vp output (patch by Adriaan van Os, mantis
#15737)

git-svn-id: trunk@14903 -
2010-02-13 16:47:37 +00:00
Jonas Maebe
5e1a09f817 * fixed getting the "original" def in taddnode.simplify by stopping at
type conversions for absolute variables (fixes test/tprec13 on, a.o.,
    ppc64 after r14892)

git-svn-id: trunk@14896 -
2010-02-13 11:30:43 +00:00
Jonas Maebe
6dd25eb233 * fixed location_force_reg() for big endian 32 bit targets and
LOC_SUBSETREF/LOC_CSUBSETREF (fixes test/tregreg4 on sparc and ppc32
    after r14892)

git-svn-id: trunk@14895 -
2010-02-13 11:29:42 +00:00
Jonas Maebe
85984c2d8f * insert proper type conversions when optimising logical operations and
compares by avoiding unnecessary sign extensions (fixes bug reported in
    http://lists.freepascal.org/lists/fpc-pascal/2010-January/023907.html )
  * never throw away int2int type conversions on bitpacked loads, because
    in these cases the proper bits still need to be selected

git-svn-id: trunk@14892 -
2010-02-12 18:13:08 +00:00
florian
092153e7ad * handle unrolling of for ... downto ... correctly, resolves #15668
git-svn-id: trunk@14884 -
2010-02-10 21:08:54 +00:00
Jonas Maebe
e89d0bcee3 + also print node tree after firstpass with -vp (patch by Adriaan van Os,
mantis #15710)

git-svn-id: trunk@14883 -
2010-02-10 16:41:16 +00:00
Jonas Maebe
6b0a0c149b * don't perform a range check in Delphi mode when passing a cardinal as
vtInteger to an array-of-const parameter (mantis #15727)

git-svn-id: trunk@14882 -
2010-02-10 16:35:37 +00:00
Jonas Maebe
d60e1f674c * automatically try to call procvars that are subscripted or used in a
with-statement, both in FPC and TP/Delphi modes (mantis #15728)

git-svn-id: trunk@14881 -
2010-02-10 16:12:18 +00:00
Jonas Maebe
879e487ee8 * changed linker target name for WinCE from arm-pe into arm-wince-pe
(mantis #15666)

git-svn-id: trunk@14872 -
2010-02-06 20:22:15 +00:00
Jonas Maebe
89110baab8 * don't modify the flags while simplifying PIC memory references
(mantis #15694)

git-svn-id: trunk@14871 -
2010-02-06 20:18:36 +00:00
florian
34f976afea * enabled internal sar support for sparc and mips as well
git-svn-id: trunk@14867 -
2010-02-04 22:04:19 +00:00
florian
f8bf268406 * handle sarX(<const>,<var>) properly. resolves #15653
git-svn-id: trunk@14866 -
2010-02-04 21:30:25 +00:00
pierre
bc407ef6d3 * also disable range check where overflow check is disabled
git-svn-id: trunk@14852 -
2010-02-03 00:32:30 +00:00
pierre
0d098f2dba * fix range check error
git-svn-id: trunk@14851 -
2010-02-03 00:31:26 +00:00
pierre
f8144cc627 * fix range check error if cstringpattern is empty
git-svn-id: trunk@14850 -
2010-02-03 00:28:21 +00:00
Jonas Maebe
b6e4896805 * small typo corrections by Adriaan Van Os (mantis #15652)
git-svn-id: trunk@14844 -
2010-02-02 10:41:38 +00:00
Jonas Maebe
f90768ed6a * small optimisation for r14449: check whether the routine is a pure
assembler routine before checking whether an identifier may represent a
    register parameter, instead of afterwards

git-svn-id: trunk@14843 -
2010-02-02 10:40:25 +00:00
Jonas Maebe
30406d3a14 * if *alignmin is set to a value > *alignmax, also increase *alignmax
git-svn-id: trunk@14842 -
2010-02-02 10:30:05 +00:00
Jonas Maebe
caca6cea37 * allow any kind of fields in Object Pascal classes that are passed to
Objective-C methods or which are fields of Objective-C classes (since they
    are basically opaque to the Objective-C runtime) + fixed tobjc11 so it
    expects classes to be encoded as opaque types
  * give a proper error message when using illegal field/parameter types in
    Objective-C classes/methods instead of an internal error (only checked
    during rtti generation rather than during parsing, because during parsing
    some types may still be forwarddefs)
  * split objcutil in objcdef and objcutil, with objcdef depending only on
    the symtable so it can be used in symdef

git-svn-id: trunk@14838 -
2010-01-31 21:13:41 +00:00
Jonas Maebe
4469501835 * fixed indentation, simplified calling read_record_fields()
git-svn-id: trunk@14837 -
2010-01-31 20:54:48 +00:00
Jonas Maebe
8e77c6998b * fixed comment
git-svn-id: trunk@14836 -
2010-01-31 20:53:04 +00:00
florian
b8e58428ed * don't search use extrapath for searching ppc* if extrapath is empty because this might find undesired compilers in the current directory
git-svn-id: trunk@14835 -
2010-01-31 16:48:18 +00:00
florian
dfc2652062 + support of compiler intrinsic sar* using a patch by Benjamin Rosseaux, resolves #15606
git-svn-id: trunk@14834 -
2010-01-31 16:47:01 +00:00
giulio2
dc4769adf3 Patch from Paul and Dmitry: properly quote resource list file parameter for fpcres
(fixes resource compilation when spaces are in the path)

git-svn-id: trunk@14824 -
2010-01-29 12:19:05 +00:00
Jonas Maebe
2be600afff * support objc.id.<anyobjcmethod> in Delphi mode (mantis #15607)
git-svn-id: trunk@14822 -
2010-01-28 16:14:42 +00:00
pierre
fdc3e9dd6f * Fix special register numbers
git-svn-id: trunk@14812 -
2010-01-27 12:27:03 +00:00
pierre
fbba2e89f8 * correct problem for -init -fini for scripts
git-svn-id: trunk@14811 -
2010-01-27 12:19:46 +00:00
paul
a8381c8b32 fpc: compiler:
- complete $WARN switch parsing and add a stab to change message state
  - reimplement way of message hiding by -vm switch (by Dmitry Boyarintsev)
(note: $WARN switch does not work at the moment since state handling is not yet implemented)

git-svn-id: trunk@14809 -
2010-01-27 06:59:58 +00:00
florian
e7bff9f5c1 * fixed reading of constants from token streams
git-svn-id: trunk@14792 -
2010-01-24 12:35:03 +00:00
florian
fc148f4aec * read/write new cstringpattern correctly from/to ppu files
+ test

git-svn-id: trunk@14791 -
2010-01-24 12:34:00 +00:00
paul
ba3744b38e compiler: translate_disp_call:
- fix arguments description if the first argument is empty
  - fix restype field value (describes result value type in variant types)

git-svn-id: trunk@14790 -
2010-01-24 12:06:52 +00:00
florian
c6ffbe9eda * support string constants > 255 chars
* don't cut off anymore string constants silently at 255 chars

git-svn-id: trunk@14789 -
2010-01-24 09:28:46 +00:00
paul
fe6a0d27a1 compiler: fix variant dispatch after r14782
git-svn-id: trunk@14788 -
2010-01-24 05:45:27 +00:00
paul
8511a3e1e4 compiler: fix an assumption that para.parasym is always assigned
git-svn-id: trunk@14783 -
2010-01-23 19:31:50 +00:00
paul
ca99f902d6 compiler: fix a memory leak in translate_disp_call
git-svn-id: trunk@14782 -
2010-01-23 19:16:17 +00:00
paul
7aede2018f compiler: mark 'var' and 'out' arguments as they are passed by reference for dispatch invoke
git-svn-id: trunk@14781 -
2010-01-23 19:01:30 +00:00
paul
f0f7837fdd compiler: fix interface type passing to dispinterface/IDispatch methods (part of issue #0015562)
git-svn-id: trunk@14780 -
2010-01-23 18:13:00 +00:00
paul
1b55473ad5 utils: implement module options for ppudump
git-svn-id: trunk@14768 -
2010-01-22 09:29:50 +00:00
paul
25298fbcd9 compiler: allow hint modifier for 'unit' keyword (reason - delphi compatibility) + test
git-svn-id: trunk@14767 -
2010-01-22 07:15:09 +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
florian
29961c1b8c * don't do cse on simple local/para variables
git-svn-id: trunk@14765 -
2010-01-21 19:30:25 +00:00
florian
69a23fe32a + foreachnode* must also iterate through the new introduced temp. initialization field
git-svn-id: trunk@14764 -
2010-01-21 19:00:42 +00:00
pierre
ea6c6631a4 * fix for bug report 15554, creating problem in text mode IDE
git-svn-id: trunk@14760 -
2010-01-21 08:18:54 +00:00
florian
f12ba2ed23 * fixes ttypeconvnode.docompare hopefully finally (nobody has seen my last attempt ;))
git-svn-id: trunk@14755 -
2010-01-20 22:07:54 +00:00
paul
009ef9184d compiler: add dispinterfaces to most of places where something is comparing to usual interfaces since they are not very different things
git-svn-id: trunk@14751 -
2010-01-19 15:24:39 +00:00
paul
e82edfb0fb compiler: allow Assigned call for dispinterfaces
git-svn-id: trunk@14750 -
2010-01-19 14:26:11 +00:00
paul
1ae0cebc1a compiler: implement dispinterface properties + modified test
git-svn-id: trunk@14747 -
2010-01-19 09:58:08 +00:00
paul
b16653e099 compiler: fix translate_disp_call for cases with method calling with no arguments
git-svn-id: trunk@14746 -
2010-01-19 09:50:25 +00:00
paul
58f43def5c compiler: write dummy restype to calldescnode if we are calling by dipid
git-svn-id: trunk@14744 -
2010-01-19 08:15:10 +00:00
florian
75e702c2e8 * rename cpu instruction set define cpu386 to cpu80386. cpu386 is used already as a family define
git-svn-id: trunk@14737 -
2010-01-17 21:16:23 +00:00
florian
988b94e578 * store array results returned in registers on x86_64-win64 in a memory location if needed, resolves #14388
git-svn-id: trunk@14736 -
2010-01-17 21:07:59 +00:00
florian
20de72b703 * allow writeln/readln on generic type parameters
git-svn-id: trunk@14721 -
2010-01-17 15:58:46 +00:00
florian
3747454aeb * patch by Olivier Coursiere to enable winlike resources on haiku, resolves #15539
git-svn-id: trunk@14716 -
2010-01-17 15:10:47 +00:00
florian
a58e07df38 * optimize <expr> and/or <expr> if they are equal and boolean
git-svn-id: trunk@14714 -
2010-01-17 14:39:58 +00:00
florian
cf5c42b596 * give a better error message and do better error recovery if too few typed constant array elements are provided
git-svn-id: trunk@14708 -
2010-01-17 13:04:17 +00:00
florian
e89f193bdd * adapted instruction string length so all instructions fit
git-svn-id: trunk@14704 -
2010-01-17 12:30:02 +00:00
florian
5acf377e31 * enable node cse for all cpus as level 2 optimization
git-svn-id: trunk@14703 -
2010-01-17 12:28:28 +00:00
florian
89bf2d0257 * cleaned up cse code
git-svn-id: trunk@14692 -
2010-01-17 10:10:41 +00:00
florian
49f9695cf5 * handle short boolean evaluation correctly when doing node cse
git-svn-id: trunk@14691 -
2010-01-17 10:08:37 +00:00
florian
3c7f726f98 * typeconvnodes are only equal if also their result type is equal
git-svn-id: trunk@14690 -
2010-01-17 10:07:44 +00:00
paul
fa729dd252 compiler: fix calling of dispinterface procedures (issue #0015528)
git-svn-id: trunk@14683 -
2010-01-16 18:02:55 +00:00
paul
74cc1e0bab compiler: allow 'as' for dispinterface, allow comparisons of dispinterface and pointers (issue #0015530, issue #0015529)
git-svn-id: trunk@14663 -
2010-01-16 11:37:25 +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
56259a084c compiler: restore occasionally removed check for sp_internal local symbols
git-svn-id: trunk@14633 -
2010-01-14 08:41:27 +00:00
paul
587e6142ad compiler: write proper note about unused private class symbol (const,type,property,method instead of method only) with full class prefix. complain also about strict private members.
git-svn-id: trunk@14632 -
2010-01-14 04:08:46 +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
Jonas Maebe
2c5ed92a4b * fixed search path for httpd units in fpc.cft & fpccfg.inc
(mantis #15501)
  - removed "include path search paths" from default configs, since they
    don't make sense anymore nowadays

git-svn-id: trunk@14630 -
2010-01-12 20:25:28 +00:00
Jonas Maebe
28cd8271c9 * initial version of internal Mach-O/i386 assembler by Dmitry Boyarintsev
(mantis #15163)

git-svn-id: trunk@14628 -
2010-01-12 19:52:55 +00:00
Jonas Maebe
d4864854cc * extra typecasts to more easily catch errors with -CR if some defs are
not properly re-resolved (no change in generated code without -CR)

git-svn-id: trunk@14619 -
2010-01-11 20:17:26 +00:00
paul
6b087799ef compiler: nested class types:
- fix is_visible_for_object to work correctly if symbol is in the objectsymtable but no current_objectdef present
  - fix ClassName for nested classes
  + test
  

git-svn-id: trunk@14617 -
2010-01-11 19:44:02 +00:00
paul
55702ed4c0 compiler: fix nested class types
git-svn-id: trunk@14616 -
2010-01-11 19:32:16 +00:00
paul
6e51a4d4a9 compiler: fix nested class types and consts usage outside class declaration
git-svn-id: trunk@14615 -
2010-01-11 18:35:08 +00:00
paul
4afb3ca971 compiler: fix internal class symbol search for function result + test
git-svn-id: trunk@14612 -
2010-01-11 11:09:12 +00:00
paul
fd6e2cc86e compiler: fix internal class symbol search for method arguments
git-svn-id: trunk@14610 -
2010-01-11 09:55:53 +00:00
paul
166f8a63a2 compiler: implement class constants + tests
git-svn-id: trunk@14609 -
2010-01-11 08:43:10 +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
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
florian
1632a10305 * search also nested common subexpressions on node level
* don't write stats for a release compiler

git-svn-id: trunk@14494 -
2009-12-29 12:55:17 +00:00
paul
b084d70ae4 compiler: cleanup - remove unused variables
git-svn-id: trunk@14493 -
2009-12-29 06:14:52 +00:00
florian
0d57b2d8da * use 3 op cgobj methods when doing shl/shr code generation, this allows the cg to generate better code on risc archs having 3 operand shifts
git-svn-id: trunk@14487 -
2009-12-27 20:19:23 +00:00