Commit Graph

346 Commits

Author SHA1 Message Date
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
Jonas Maebe
765fe2b2ab * fixed bug #4737 (check for potential range errors in for-loop
assignment, report correct column for potential range errors of
    call parameters)
  * refactored code to check potential range check errors (check_ranges
    in htypechk)

git-svn-id: trunk@2501 -
2006-02-09 17:39:22 +00:00
Jonas Maebe
0dc6d51c08 * fixed displaying of hints such for procedures and functions
(and moved check_hints from pbase to htypechk) (forgot to commit earlier)

git-svn-id: trunk@2469 -
2006-02-07 14:23:38 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
45176ea2a8 * split tstringtype for stringdef and stringconstnode
to prevent wrong typecasts

git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
9c2ee3a722 * fixed web bug #4086: do not create a refcounted temp for
interface temps created for complex callnodes

git-svn-id: trunk@2165 -
2006-01-04 21:07:10 +00:00
florian
f7d2c47f73 + no stackframe is generated for i386 if possible
git-svn-id: trunk@2162 -
2006-01-04 19:19:06 +00:00
Jonas Maebe
cbb59be2f1 * fixed web bug #4651 + test
git-svn-id: trunk@2108 -
2006-01-01 20:19:38 +00:00
Jonas Maebe
d6559f594d * also make "out" parameters unique
git-svn-id: trunk@2043 -
2005-12-23 23:48:48 +00:00
Károly Balogh
238964e443 Various m68k fixes/additions:
- fixes in asmreader, basic stuff works again, the rest is untested
  - removed lot of unnecessary ungetcpuregister()s
  - various other fixes i forgot
  + basic amigaos syscalls support. still lacks explicit funcretloc

git-svn-id: trunk@1943 -
2005-12-13 20:42:15 +00:00
Jonas Maebe
52ca5e6922 * use more precise vs_* information to replace less parameters of inlined
procedures with const and value parameters with temps, allowing a bit
    more value propagation
  + tinline6.pp for testing wrong propagation of value parameters in
    dangerous situations

git-svn-id: trunk@1914 -
2005-12-10 17:01:07 +00:00
Jonas Maebe
42ec76598c * new categories for vs_*: vs_declared, vs_initialised, vs_read,
vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
    vs_used has been replaced by vs_read, vs_written and vs_readwritten
  * the valid_for_*() routines in htypechk now get an extra parameter to
    decide whether or not errors should be reported

git-svn-id: trunk@1913 -
2005-12-10 16:51:26 +00:00
peter
f622915690 * fix infinite loop in createinlineparas
git-svn-id: trunk@1456 -
2005-10-18 05:51:13 +00:00
florian
71b90d4d00 + slice implemented
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
tom_at_work
b2e1cf2610 * powerpc64 port now (manually) cycles, most test programs in tests/test are fine too
* fixed bug in ncal.pas which in some circumstances treated the hidden length parameter for open arrays as 32 bit integer

git-svn-id: trunk@1303 -
2005-10-05 21:55:25 +00:00
peter
89297d2c39 * move all stabs ($ifdef gdb) code to dbgstabs
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223 * string constants are now array of char until
they are converted to a specific string type

git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
a720145fd1 * remove obsolete pass2inline code
git-svn-id: trunk@1198 -
2005-09-25 20:02:17 +00:00
peter
2f0fdd1847 * cleaner fix for tb0496 (r1185)
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +00:00
florian
cdd5b61af8 + internal error added
git-svn-id: trunk@1069 -
2005-09-10 09:29:56 +00:00