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