Commit Graph

207 Commits

Author SHA1 Message Date
Jonas Maebe
ac11ab43a2 * fixed wrong conversions from real to currency/int64 for x86
git-svn-id: trunk@2954 -
2006-03-18 13:20:58 +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
Jonas Maebe
5fbc345674 + some simplify support for ttypeconvnode
git-svn-id: trunk@2774 -
2006-03-05 21:38:05 +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
58381ff7b6 * made chararray handling 98% TP-compatible, fixes web bugs 3012
and 4080. The compatibility differences are:
      a) writing a chararray which is zero-based but not zero-
         terminated does not cause a buffer overflow
      b) non-zero-based chararrays can also be read

    The difference was that previously, all chararrays were treated
    as pchars. In TP/Delphi (and now also in FPC), this is only done
    for zero-based chararrays. For non-zero-based ones, the entire
    contents of the array should always be used (including #0's).

    The default parameters in the system unit for the chararray
    helpers are to avoid having to use a define for bootstrapping.

git-svn-id: trunk@2152 -
2006-01-04 10:05:10 +00:00
florian
e4a8f008a7 * fixed ie when "converting" double to double and single to single on softemu
git-svn-id: trunk@2031 -
2005-12-22 22:24:02 +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
florian
1ef533ffa9 * rtti parameter for dyn. array to variant conversion fixed
git-svn-id: trunk@1590 -
2005-10-23 19:41:16 +00:00
peter
f9db030350 * fix overload choosing if both normal proc and proc of object are available
git-svn-id: trunk@1496 -
2005-10-19 07:56:08 +00:00
peter
8d9e9b24a6 * convert constant widestring to ansistring before assigning to pchar
git-svn-id: trunk@1482 -
2005-10-18 20:49:23 +00:00
peter
8b60dbe4cb * support constant array of char to array of widechar
git-svn-id: trunk@1475 -
2005-10-18 12:31:30 +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
2f0fdd1847 * cleaner fix for tb0496 (r1185)
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +00:00
florian
be99f2a7fd * fixed loading of addresses of virtual methods to methodpointers in delphi mode
git-svn-id: trunk@1182 -
2005-09-25 10:58:17 +00:00
florian
a53c9e2666 * fixed stupid copy/paste which turned softfloat always off
* fixed wince softfloat compiler proc. to be correctly named also when used outside the system unit

git-svn-id: trunk@966 -
2005-08-28 21:08:23 +00:00
florian
adb193497d + softfloat support for wince
* more units are build for wince

git-svn-id: trunk@959 -
2005-08-28 12:40:43 +00:00
peter
376865d041 * mark variables used in set creation
git-svn-id: trunk@706 -
2005-07-20 06:44:59 +00:00
florian
7c10694bc3 * fixed widechar const to widestring, fixes bug #4155
git-svn-id: trunk@638 -
2005-07-17 08:49:38 +00:00
peter
91b59bc62a * don't check ranges for explicit typecasts of ordinal to pointer constants
git-svn-id: trunk@586 -
2005-07-05 07:14:30 +00:00
peter
bead787962 * fix type checking in constant sets
git-svn-id: trunk@583 -
2005-07-05 06:03:16 +00:00
florian
7cd67ea3f0 * node optimizer branch merged
* gotonode and gotolabel refactored
  * -Nu added to enable for loop unrolling

git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
68ac3b0ab2 remove forcing of non-regvar for left node when converting to non-regvar 2005-04-08 15:16:37 +00:00
michael
55e76063df * Fix methodpointer copy from callnode to loadnode 2005-04-06 11:49:37 +00:00
peter
3f9d6ab32f * add hint when passing an uninitialized variable to a var parameter 2005-03-25 22:20:18 +00:00
florian
737a81f30b + array -> dyn. array type cast 2005-03-11 21:55:43 +00:00
Jonas Maebe
adc5f048eb * fixed small bug in ttypeconvnode.printnodeinfo 2005-03-05 16:09:20 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
a2a4985896 * in delphi mode const sets from enumerations with values > 255 are allowed if these elements aren't used 2005-02-03 18:43:59 +00:00
peter
4631658576 * add info that a procedure is local in error messages 2005-01-30 11:26:40 +00:00
peter
f4ec016665 * fix crash with -CR 2005-01-09 15:04:36 +00:00
florian
3cb0a53eca + compiler side of variant<->interface implemented 2005-01-07 21:14:21 +00:00
florian
ef9b70f1f4 * 1.0.10 starting patch from Peter 2005-01-06 13:40:41 +00:00
florian
7aa53f09cc * widechararray patch from Peter 2005-01-06 13:30:40 +00:00
florian
80af47489d + first batch of patches to support tdef.getcopy fully 2005-01-03 17:55:57 +00:00
peter
f0267daa4a * also don't call procvar when converting to procvar 2004-12-27 16:54:29 +00:00
peter
ced6bf20cd * fix lineinfo for with blocks 2004-12-26 16:22:01 +00:00
peter
78c2af7b3c * set vo_explicit_paraloc flag 2004-12-07 16:11:52 +00:00
peter
2b6456fe16 * procvar handling for tp procvar mode fixed
* proc to procvar moved from addrnode to typeconvnode
  * inlininginfo is now allocated only for inline routines that
    can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
florian
8b9c48e7fb * fixed compiler side of variant <-> dyn. array conversion 2004-12-05 12:15:11 +00:00
peter
1fcd2cd8ad * internal flag for compare_defs_ext 2004-11-26 22:34:28 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
Jonas Maebe
14197fb830 * copy totype field in ttypeconvnode.getcopy() 2004-11-02 20:15:53 +00:00
peter
2e161c5e9e * nf_internal flag for internal inserted typeconvs. This will
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
peter
9b00c7832e * support > 32bit accesses for x86_64
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
peter
2aceb6f856 * no checkpointer code for dynarr to openarr 2004-11-01 17:15:47 +00:00
peter
a2cbf27e96 * -Or fix for absolute 2004-11-01 15:31:57 +00:00