Jonas Maebe
3e153102a8
* fixed calling class methods via classrefdefs (mantis #8145 )
...
git-svn-id: trunk@6075 -
2007-01-19 18:05:58 +00:00
Jonas Maebe
3d99dcc178
* object constructors/methods obviously can also read the object
...
git-svn-id: trunk@6022 -
2007-01-17 10:09:41 +00:00
Jonas Maebe
9ad579855e
* fixed webtbf/tw3631
...
* properly set vs_read/written status for tp-style objects
without vmt of which a method is called
git-svn-id: trunk@6005 -
2007-01-16 21:15:21 +00:00
Jonas Maebe
38d54234d7
* fixed crash when calling a procvar with too many parameters
...
(mantis 8109)
git-svn-id: trunk@5951 -
2007-01-13 18:38:04 +00:00
peter
d2c8e7429e
* include parameter types for checking abstract calls
...
git-svn-id: trunk@5911 -
2007-01-11 22:23:04 +00:00
peter
0f70e42920
* abstractmethodlist to tfphashlist
...
git-svn-id: trunk@5908 -
2007-01-11 21:53:12 +00:00
Jonas Maebe
2ddeca21e6
* don't give warning about constructing instance with abstract methods
...
for self.create calls + tests
git-svn-id: trunk@5810 -
2007-01-04 13:02:23 +00:00
florian
a2ec2e72b6
* better hint about abstract methods (fixes 5098)
...
+ code generation for invoking dispinterface methods
* small dispinterface problems fixed
git-svn-id: trunk@5798 -
2007-01-03 19:14:31 +00:00
florian
d5291d0e18
+ handle variant dispatching
...
git-svn-id: trunk@5771 -
2006-12-31 17:50:29 +00:00
Jonas Maebe
47ff7b62e7
* fixed overload choosing algorithm so it's Delphi-compatible +
...
tests (and test generator) (also fixes mantis 6641)
git-svn-id: trunk@5732 -
2006-12-28 16:54:07 +00:00
Jonas Maebe
e4a2fb7f35
* fixed mantis 7975 and 7107 (ie 200311075 when working using somewhat
...
complex method calls in inlined procedures)
git-svn-id: trunk@5666 -
2006-12-21 21:03:47 +00:00
Jonas Maebe
89349c2f1a
* fixed web bug #7963 (crash when trying to print the name of a procvar
...
with too few parameters specified)
git-svn-id: trunk@5591 -
2006-12-14 15:57:17 +00:00
Jonas Maebe
d7633e9dd0
* removed wrong comment from r5389 (no longer applicable since r5390)
...
git-svn-id: trunk@5539 -
2006-12-04 14:13:45 +00:00
Jonas Maebe
7c387c9f82
- removed double initialisation of local typed constants/initialised
...
variables (initialization code of inlined routines is stored/loaded
from ppu as wel)
git-svn-id: trunk@5538 -
2006-12-04 14:10:10 +00:00
Jonas Maebe
9e60d6791d
* show name of procedure/function called with too few parameters
...
git-svn-id: trunk@5522 -
2006-12-01 20:15:57 +00:00
tom_at_work
3b6d5c3676
- cleanup, fixing of uninitialized variables, missing return values and unused variables
...
git-svn-id: trunk@5502 -
2006-11-26 21:54:23 +00:00
Jonas Maebe
5444207df8
* better fix for tw1623 (generates more optimal code)
...
git-svn-id: trunk@5390 -
2006-11-15 14:15:00 +00:00
Jonas Maebe
248046320a
* fixed inlining of functions called in their own parameters (tw1623)
...
git-svn-id: trunk@5389 -
2006-11-15 09:56:11 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
f88e6a834e
* typo
...
git-svn-id: trunk@5255 -
2006-11-05 21:19:41 +00:00
florian
5cbc15b339
* some variant dispatching stuff fixed
...
git-svn-id: trunk@5254 -
2006-11-05 21:07:59 +00:00
florian
a13d358f1e
* first partially working implementation of variant com invoking
...
git-svn-id: trunk@5247 -
2006-11-05 15:34:15 +00:00
florian
c947295cb8
+ ttertiarynode
...
* traise node refactored using tertiarynode
* more dipatch stuff
git-svn-id: trunk@5215 -
2006-11-03 23:03:31 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
be2b715d3c
+ parsing of disp variant invokes
...
git-svn-id: trunk@5162 -
2006-11-01 21:23:04 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
daniel
1406181aa5
* Fix incorrect usage of result value.
...
git-svn-id: trunk@5090 -
2006-10-30 10:32:56 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
daniel
de423ab5b0
+ stringvar[l..h] now valid parameter for open array of char.
...
git-svn-id: trunk@5038 -
2006-10-27 22:23:25 +00:00
daniel
068c0f7952
* Cleaner implementation of pointer index to open array, codegen changes
...
no longer necessary and therefore reverted.
git-svn-id: trunk@5037 -
2006-10-27 20:57:51 +00:00
daniel
2450f5a778
+ First working concept of open_array_procedure(Pbyte_var[0..9]);
...
git-svn-id: trunk@5028 -
2006-10-26 20:30:16 +00:00
Jonas Maebe
0a23786605
- reverted r4880 (wrong varargs reform) and r4838 (wrong removal of
...
varargs/array of const overloads)
* arrayconstructor and array of const are no longer compatible with
the extra varargs parameters (so overloaded varargs and array of
const cdecl functions can be distinguished)
* fixed tprintf2 for the correct varargs syntax
git-svn-id: trunk@4909 -
2006-10-14 17:39:00 +00:00
florian
9288a2f76d
+ more verbose printnode for call nodes
...
git-svn-id: trunk@4892 -
2006-10-13 21:19:14 +00:00
Jonas Maebe
e9cabd17e1
* fixed handling of "varargs" procedures (i.e., those without an explicit
...
array-of-const parameter)
git-svn-id: trunk@4880 -
2006-10-13 12:35:17 +00:00
florian
02d0ac4c3e
+ only procedures doing recursive calls are checked for tail recursivity
...
+ parameters are tested if they are usable with tail recursion removal
git-svn-id: trunk@4853 -
2006-10-10 20:29:48 +00:00
peter
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
micha
d704af7216
fix compilation for {$T+} linux/win
...
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
peter
2f0ce31751
* string concat changed from function to procedure to
...
allow runtime optimization if the destination is the
same as a source parameter
* tassignmentnode now sets aktassignmentnode global that can be used
to use the left node as a destination parameter and
skip the assignment
* disabled all cpu specific shortstr concat/append
git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
Jonas Maebe
733f559267
* also perform C varargs type conversions for cdecl procedures declared
...
as "varargs" instead of using an array of const parameter
git-svn-id: trunk@4572 -
2006-09-08 16:04:15 +00:00
yury
2df42b29af
* removed "Note: Local variable "X" is assigned but never used" when the variable is passed to procedure/function as OUT parameter.
...
git-svn-id: trunk@4257 -
2006-07-19 18:19:41 +00:00
Jonas Maebe
84d1fc929f
* properly set regvarability of parameters and local variables of inlined
...
functions
* fixed setting of expectloc for fields of regvar'ed records
git-svn-id: trunk@3607 -
2006-05-20 23:37:55 +00:00
Jonas Maebe
e0250bcdb4
* never remove regvar-ability of parameters passed by reference
...
(previously worked only for var/out, now also for const and
is more generic)
git-svn-id: trunk@3554 -
2006-05-17 13:38:02 +00:00
peter
ae0010ad6c
* support proc to procvar conversion for overloaded procdefs passed to parameters
...
git-svn-id: trunk@2997 -
2006-03-21 07:51:54 +00:00
Jonas Maebe
4db6e1ddb8
* moved type conversion of C varargs from tcallnode to
...
tarrayconstructornode.inset_typeconvs() and fixed them:
* integers < 32 bit are converted to 32 bit (this was previously
done in the code generator for some targets, and not for others)
* currency is also converted to double for targets where currency = int64
* single is converted to double, except for x86_64 (is at least
necessary on darwin/ppc, darwin/i386 and linux/i386)
* enums are converted to 32 bit ints
* procvars are converted to pointers
* proper errors are given for various unsupported types
NOTE: in C, floating point constants are by default double, while in
FPC they are of type extended. On platforms where extended <> double,
such constants when passed to C varargs are automatically converted
to double by default (gives warning). If you want to pass them as
single or extended or get rid of the warning, use an explicit typecast
* increased ppu version because of introduction of new node flag
(nf_cvarargs for tarrayconstructornode)
* fixed tests/test/cg/tprintf
* changed tests/test/cg/cdecl/taoc5 to use explicit typecasts for
floating point constants passed to C varargs functions.
git-svn-id: trunk@2949 -
2006-03-17 22:26:48 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +00:00
Jonas Maebe
791be20f28
* committed wrong file in r2614 (ncal.pas instead of pexpr.pas)
...
git-svn-id: trunk@2616 -
2006-02-17 09:05:03 +00:00
Jonas Maebe
a15505521c
* fixed handling of wrong invocations of slice + improved error reporting
...
git-svn-id: trunk@2614 -
2006-02-16 20:27:31 +00:00